java并发编程中使用executors类创建和管理线程的用法

java并发编程中使用executors类创建和管理线程的用法

ID:30768960

大小:56.00 KB

页数:4页

时间:2019-01-03

java并发编程中使用executors类创建和管理线程的用法_第1页
java并发编程中使用executors类创建和管理线程的用法_第2页
java并发编程中使用executors类创建和管理线程的用法_第3页
java并发编程中使用executors类创建和管理线程的用法_第4页
资源描述:

《java并发编程中使用executors类创建和管理线程的用法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java并发编程中使用Executors类创建和管理线程的用法这篇文章主要介绍了Java并发编程屮使用Executors类创建和管理线程的用法,文屮举了用其启动线程和设置线程优先级的例子,需要的朋友可以参考下1.类ExecutorsExecutors类可以看做一个“工具类”。援引JDK1.6API中的介绍:此包屮所定义的ExecutorsExecutorService>ScheduledExecutorService>ThreadFactory和Callable类的工厂和实用方法。此类支持以下各种方法:(1)创建并返回设置有常用配置字符串的ExecutorSer

2、vice的方法。(2)创建并返冋设置有常用配置字符串的ScheduledExecutorService的方法。(3)创建并返回“包装的”ExecutorService方法,它通过使特定于实现的方法不可访问来禁用重新配置。(4)创建并返冋ThreadFactory的方法,它可将新创建的线程设置为己知的状态。(5)创建并返回非闭包形式的Callable的方法,这样可将其用于需要Callable的执行方法中。通过这个类能够获得多种线程池的实例,例如可以调用newSingleThreadExecutorf)^得单线程的ExecutorService,调用newFixed

3、ThreadPool()获得固定大小线程池的ExecutorService»等等。拿到ExecutorServicenJ'以做的事情就比较多了,最简单的是用它來执行Runnable对象,也可以执行一些实现了Callable的对象。用Thread的start()方法没有返回值,如杲该线程执行的方法有返回值那用ExecutorService就再好不过了,可以选择submit()^invokeAII()或者invokeAny(),根据具体情况选择合适的方法即可。此类屮提供的一些方法有:1.1publicstaticExecutorServicenewCached

4、ThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。1.2publicstaticExecutorServicenewFixedThreadPool(intnThreads)创建一个可重用固定线程数的线程池,以共享的无界队列方式來运行这些线程。1.3publicstaticExecutorServicenewSingleThreadExecutor()创建一个使用单个worker线程的Executor,以无界队列方式来运行该线程。这三个方法都可以配合

5、接口ThreadFactory的实例一起使用。并且返冋一个ExecutorService接口的实例。2.接口ThreadFactory根据需要创建新线程的对彖。使用线程工厂就无需再手工编写对newThread的调用了,从而允许应用程序使用特殊的线程子类、属性等等。此接口最简单的实现就是:classSimpleThreadFactoryimplementsThreadFactory{publicThreadnewThread(Runnabler){returnnewThread(r);}}1.接口ExecutorService该接口提供了管理终止的方法。2.创建标

6、准线程池启动线程4.1提供一个简单的实现Runnable接口的线程MyThread.javapackagecom.zj.www.visal58.comcurrency.executors;publicclassMyThreadimplementsRunnable{privateintcount=1,number;publicMyThread(intnum){number=num;System.out.println(HCreateThread-11+number);}publicvoidrun(){while(true){System.out.println("

7、Thread」+number+HrunH+count+Htime(s)H);if(++count==3)return;}}}这个线程会打印出相应的创建和执行信息。4.2使用CachedThreadPool启动线程CachedThreadPool.javapackagecom.zj.concurrency.executors;importjava.util.concurrent.ExecutorServgimportjava.util.concurrent.Executors;publicclassCachedThreadPool{publicstaticvoid

8、main(Strjng[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。