黑马程序员技术交流社区
标题:
关于Executor的问题,搞不懂...
[打印本页]
作者:
嘿嘿小学徒
时间:
2012-12-31 17:10
标题:
关于Executor的问题,搞不懂...
本帖最后由 高一航 于 2013-1-1 12:24 编辑
请帮我解释下这行代码的作用:
ExecutorService pool=Executors.newSingleThreadExecutor();
复制代码
这和一般的两种创建线程有什么关系..? 谢谢大家回答..
作者:
何创
时间:
2012-12-31 17:22
一般线程创建的是本线程的对象,这个代码创建的是单例模式的对象。我是这样认为。
作者:
马志军
时间:
2012-12-31 17:27
系统启用一个新线程的成本较高,因其涉及到与操作系统的交互。使用这种线程池能提高性能。
开始线程池中有大量空闲线程,返回的ExecutorService表示尽快执行线程的线程池,程序只要将一个Runnable对象提交给该线程池,它就会尽快执行。
我感觉主要是为了性能的考虑,还是jdk1.5的新特性
作者:
张会文
时间:
2012-12-31 19:56
ExecutorService pool = Executors.newSingleThreadExecutor();
是单任务线程池。另外其他创建java线程池方式还有:
1、固定大小线程池
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
ExecutorService pool = Executors.newFixedThreadPool(2);
pool.execute(t1);
pool.shutdown();
2、单任务线程池
ExecutorService pool = Executors.newSingleThreadExecutor();
3、可变尺寸线程池
ExecutorService pool = Executors.newCachedThreadPool();
4、延迟连接池
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
ScheduledExecutorService pool = Executors.newScheduledThreadPool(2);
pool.schedule(t4, 10, TimeUnit.MILLISECONDS);
5、单任务延迟连接池
ScheduledExecutorService pool = Executors.newSingleThreadScheduledExecutor();
作者:
冉世友
时间:
2012-12-31 22:10
个人理解啊,这行代码的意思是:
创建一个线程池,里面只有一个线程,当有任务需要执行时,交给线程池去执行。
这是1.5的新特性,是为了提高性能用的。系统用原来的创建线程方式开销一般是很大的。
作者:
郝福明
时间:
2013-1-1 10:13
这事创建一个线程池,当线程运行时,程序会将线程交给线程池中空闲的一个线程
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2