实现多线程的方法到底有1种还是2种还是4种?
您的每一个用心回答,都会让这个世界变得更美好一些!
JAVA 线程实现/创建方式
继承 Thread 类(少用面对接口编程)
实现 Runnable 接口。(少用)
Callable<Class>(new futureTask对象把它放入线程之中,get方法是获取返回值)
PS:上面三种答案我是确定的第四种可能是线程池吧。下面是线程池的
ThreadPoolExecutor,ExecutorService (线程池)
线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。
回答思路仅供参考:
1.不同角度看,会有不同的答案(代码实现方式和本质上)
本质上就两种方式(看官网https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html)
2.两种创建多线程的方式:继承Thread类和实现Runnable接口,这两种方式的优缺点
3.原理(两种方式的原理一样)
4.具体展开说其他方式(除了Thread和Runnable)
5.最后总结
JAVA 线程实现/创建方式
继承 Thread 类(少用面对接口编程)
实现 Runnable 接口。(少用)
Callable<Class>(new futureTask对象把它放入线程之中,get方法是获取返回值)
PS:上面三种答案我是确定的第四种可能是线程池吧。下面是线程池的
ThreadPoolExecutor,ExecutorService (线程池)
线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。
回答思路仅供参考:
1.不同角度看,会有不同的答案(代码实现方式和本质上)
本质上就两种方式(看官网https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html)
2.两种创建多线程的方式:继承Thread类和实现Runnable接口,这两种方式的优缺点
3.原理(两种方式的原理一样)
4.具体展开说其他方式(除了Thread和Runnable)
5.最后总结