java面试题网

普通会员

217

帖子

75

回复

160

积分

楼主
发表于 2019-05-05 14:18:31 | 查看: 5199| 回复: 1

常用的Java多线程启动方式,Executors线程池有几种常用类型?

常用的Java多线程启动方式,Executors线程池有几种常用类型?

(1) 继承Thread类
public class java_thread extends Thread{
public static void main(String args[]) {
new java_thread().run();
System.out.println("main thread run ");
}
public synchronized void run() {
System.out.println("sub thread run ");
}
}
(2) 实现Runnable接口
public class java_thread implements Runnable{
public static void main(String args[]) {
new Thread(new java_thread()).start();
System.out.println("main thread run ");
}
public void run() {
System.out.println("sub thread run ");
}
}
在Executor框架下,利用Executors的静态方法可以创建三种类型的常用线程池:
1)FixedThreadPool这个线程池可以创建固定线程数的线程池。
2)SingleThreadExecutor是使用单个worker线程的Executor。
3)CachedThreadPool是一个”无限“容量的线程池,它会根据需要创建新线程。


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/660_1_1.html


java面试题交流群:327440556

普通会员

115

帖子

83

回复

169

积分
沙发
发表于 2019-09-26 15:23:38

如何使用线程池?
线程池就是事先将多个线程对象放到一个容器中,当使用的时候就不用new线程而是直接去池中拿线程即可,节省了开辟子线程的时间,提高的代码执行效率。
在JDK的java.util.concurrent.Executors中提供了生成多种线程池的静态方法。
ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(4);
ScheduledExecutorService newScheduledThreadPool = Executors.newScheduledThreadPool(4);
ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();
然后调用他们的 execute 方法即可。 

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018