码迷,mamicode.com
首页 > 编程语言 > 详细

预处理线程问题解决方案

时间:2017-03-29 11:34:34      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:finish   处理   执行   需要   ini   static   解决   事件   thread   

问题描述:

       现有3个线程thread1, thread2, thread3。这3个线程是并发执行的,当着3个线程都执行完成以后,需要执行一个finish()事件。

 

实现方法:

 1 /** 定义一个静态标记 **/
 2 private static byte nbTemp = 0;
 3 
 4 private void aa(){
 5     // 线程1
 6     Thread thread1 = new Thread(new Runnable() {
 7         @Override
 8         public void run() {
 9             // ...
10             bb();
11         }
12     });
13     // 线程2
14     Thread thread2 = new Thread(new Runnable() {
15         @Override
16         public void run() {
17             // ...
18             bb();
19         }
20     });
21     // 线程3
22     Thread thread3 = new Thread(new Runnable() {
23         @Override
24         public void run() {
25             // ...
26             bb();
27         }
28     });
29 
30     thread1.start();
31     thread2.start();
32     thread3.start();
33 }
34 
35 /** 注意:要添加关键字“synchronized”,否则会先同时操作bb()方法 */
36 private synchronized void bb(){
37     nbTemp ++;
38     if(nbTemp == (byte)3) {
39         finish(); // 条件达成,执行finish();
40     }
41 }

 

预处理线程问题解决方案

标签:finish   处理   执行   需要   ini   static   解决   事件   thread   

原文地址:http://www.cnblogs.com/steffen/p/6638756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!