线程池处理数据
来源:互联网 发布:java工程师是青春饭吗 编辑:程序博客网 时间:2024/05/16 08:20
public class ProcessRunnable implements Runnable {//线程名private String name;//队列private BlockingQueue queue;//线程辅助,用于线程全部执行完成前,主线程等待private CountDownLatch countDownLatch;public ProcessRunnable(String name,BlockingQueue queue,CountDownLatch countDownLatch){this.name = name;this.queue = queue;this.countDownLatch = countDownLatch;}@Overridepublic void run() {Object obj;try {while(true){obj = queue.take();if(obj==Task.EXIT_SIGNAL){break;}if(obj == null){continue;}//处理obj}} catch (InterruptedException e) {e.printStackTrace();} finally {countDownLatch.countDown();}}}
public class Task {public static final Object EXIT_SIGNAL = new String("exit");public static void main(String[] args) {BlockingQueue queue = new SynchronousQueue();int threadCount = 5;CountDownLatch countDownLatch = new CountDownLatch(5);ExecutorService executorService = Executors.newFixedThreadPool(5);for(int i=0;i<threadCount;i++){executorService.execute(new ProcessRunnable("task"+i,queue,countDownLatch));}try{//在此处添加对象,线程会在队列中获取对象进行处理//可以得到多个对象进行处理queue.add(new Object());}finally {for(int i=0;i<threadCount;i++){try {//添加固定对象用于退出queue.put(EXIT_SIGNAL);} catch (InterruptedException e) {e.printStackTrace();}}try {//当线程其中一个线程终止数值-1countDownLatch.wait();} catch (InterruptedException e) {e.printStackTrace();}executorService.shutdown();}}}
0 0
- 线程池处理数据
- ios后台处理数据存储线程
- spring处理线程池
- 线程池处理多线程
- 线程池多线程处理
- springmvc+spring线程池处理http并发请求数据同步控制问题
- 线程池处理(例)
- 多任务处理:线程池
- 网站 IIS线程池 处理
- 线程池处理(waiting)
- 线程池异常统一处理
- java线程池异常处理
- 线程池的异常处理
- ios后台处理数据存储线程的代码
- Android 单独开启线程处理服务器数据提交和访问
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- 阅读小结:InfoGAN:Interpretable Representation Learning by Information Maximising Generative Adversarial
- Python-reduce函数
- 单片机移位操作;_crol_ 和_cror_ 的使用
- java增删改xml
- 域名邮箱|Yii2.0使用QQ域名邮箱发送邮件
- 线程池处理数据
- 1-17 触摸屏原理及基于S3C2440的代码实现
- 这样提案,设计比较容易落地
- 51nod 1138 【数学-等差数列】
- Linux命令(11):rm
- 如何让压力测试产生平稳的机器人曲线——压测后台的一次优化历程
- Android webView 中 注入js 获取网页中的 图片
- Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考
- Win8系统下安装Oracle11g时,安装程序报错:[INS-13001]环境不满足最低要求的解决方法