- 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
- }
来源: http://www.bubuko.com/infodetail-1999851.html