首先创建一个num类,该类的成员用于线程同步。 public class Num { int i; boolean falg; } 1. 2. 3. 4. 使用wait/notify机制+条件判断实现 public class TestThread1 { public static void main(String[] args) { Num num=new Num(); Thread t1=new Thread(new A(num)); Thread t2=new Thread(ne...
package mianTest; // 单纯的利用boolean变量来写 加一个volatile关键字:保证他的可见性 public class Demo01 { volatile static int flag = 0; public static void main(String[] args) { Thread myThread = new Thread(new myThread1()); Thread myThread2 = new Thread(new myThread2()); myThread.s...
使用两个线程交替打印奇偶数,需要用到锁来实现,下边有3种实现方式: 使用NSLock实现 NSLock *lock = [[NSLock alloc] init]; __block int number = 0; dispatch_async(queue1, ^{ while (number < 100) { [lock lock]; if (number%2 == 0) { number++; NSLog(@"奇数---%d",number); } [...
/** *线程通信的例子:使用两个线程打印 1-100。线程1, 线程2 交替打印 * 涉及到的三个方法: * wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。 * notify():一旦执行此方法,就会唤醒被wait的一个线程。如果有多个线程被wait,就唤醒优先级高的那个。 * notifyAll():一旦执行此方法,就会...