边读边写【7】 ----java 多线程实战【Thread /Executors】
前面2个月一直忙碌,但是还是不忘在iteye 上发发帖子,写写文章。终于这周over了2套系统,剩下的时间基本上修改跟维护了。
在完成的一套“应用安装系统”后对多线程的理解又深了一点。
这里写出来,一来跟大家分享,二来让坛子里的大牛们指教指教,许多不足之处。
ps:看《maven 实战》看着看着就想睡觉,不知为什么?我一般看书很认真的。
ok。看看需求:
首先来实现一个多线程。简单的说就是在一个方法里头要完成6件事,6件事没有直接关联关系。不会因为一件事不完成导致下面的事情无法完成。都完成好了,就执行下一个方法。
线程的俩种实现方式,如果你的代码已经继承其他类了,就实现Runnable借口。这俩种方式的线程都是没有返回值的。
公司的代码不好贴,这里贴个变相的demo.
策略一:
//ExecutorService exec = Executors.newCachedThreadPool();//创建线程池 ExecutorService exec = Executors.newFixedThreadPool(7);//创建线程池
第一个newCachedThreadPool();他会启动n个线程来完成你的任务。他能自动线程回收。但是他的时间是60s.可以把这个demo跑下,发现让他sleep70秒他可以。这个问题我搞了很久没搞明白【求明白的分享】。所以我没用。用的是.newFixedThreadPool(7)参数能设置他的线程数。
总的来说还是那俩句话,一是分享,一是请教。谢谢