创建线程有几种不同的方式?你喜欢哪一种?为什么?
有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()方法的区别
B2C网站上促销价格出错了,如何做危机公关?
北京有一条1公里长的街道,你认为一天能收多少钱的停车费?
怎么理解产品经理与技术研发之间的关系?
老师讲得真好,通俗易懂
收益匪浅啊
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来创建线程池。