预处理线程问题解决方案
Posted tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了预处理线程问题解决方案相关的知识,希望对你有一定的参考价值。
问题描述:
现有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 }
以上是关于预处理线程问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Python 自动化 - 浏览器chrome打开F12开发者工具自动Paused in debugger调试导致无法查看网站资源问题原因及解决方法,javascript反调试问题处理实例演示(代码片段
PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段