创建线程有几种不同的方式?你喜欢哪一种?为什么?
有4种方式可以用来创建线程:继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使用。还有一种方式是实现Callable接口
老师讲得真好,通俗易懂
收益匪浅啊
4444444
1,继承Thread类,重写run方法;2,实现Runnable接口,重写run方法,3,使用Executor框架创建线程池。Executor框架是juc里提供的线程池的实现。我更喜欢用第二种, 因为实现接口还可以继承类,避免了单继承带来的局限性; Runnable还可以用于“资源的共享”。即,多个线程都是基于某一个Runnable对象建立的,它们会共享Runnable对象上的资源
我来给大家举个例子第一种:继承Thread类第二种:实现Runnable接口第三种:实现Callable接口第四种:Executor框架来创建线程池
1,继承Thread类,重写run方法;2,实现Runnable接口,重写run方法,但是比继承Thread类好用,实现接口还可以继承类,避免了单继承带来的局限性;3,实现callable接口,重写call方法,有返回值。4,使用实现了Executor接口的ThreadPoolExecutor来创建线程池。
多线程中sleep()和wait()方法的区别
如何理解PV、UV、IP
某公园内有个奇怪的摊主小周,他只在星期一、星期二、星期三、星期五和星期六工作,而且他只出售4种商品:玩具汽车、充气气球、橡皮泥和遥控飞机。<
微信公众号中服务号和订阅号合二为一,你怎么看?
老师讲得真好,通俗易懂
收益匪浅啊
4444444
1,继承Thread类,重写run方法;
2,实现Runnable接口,重写run方法,
3,使用Executor框架创建线程池。Executor框架是juc里提供的线程池的实现。
我更喜欢用第二种, 因为实现接口还可以继承类,避免了单继承带来的局限性; Runnable还可以用于“资源的共享”。即,多个线程都是基于某一个Runnable对象建立的,它们会共享Runnable对象上的资源
我来给大家举个例子
第一种:继承Thread类
第二种:实现Runnable接口
第三种:实现Callable接口
第四种:Executor框架来创建线程池
1,继承Thread类,重写run方法;
2,实现Runnable接口,重写run方法,但是比继承Thread类好用,实现接口还可以继承类,避免了单继承带来的局限性;
3,实现callable接口,重写call方法,有返回值。
4,使用实现了Executor接口的ThreadPoolExecutor来创建线程池。