两个线程交替打印0~100的奇偶数:
偶线程:0
奇线程:1
偶线程:2
奇线程:3
......
public class Test {
public static void main(String[] args) {
// 创建两条线程,奇数线程打印奇数,偶数线程打印偶数
Thread thread1 = new Thread(new ThreadTask(), "偶数线程");
Thread thread2 = new Thread(new ThreadTask(), "奇数线程");
thread1.start();
thread2.start();
}
static class ThreadTask implements Runnable {
// 静态变量:创建对象时不会重置值
static int value = 0;
@Override
public void run() {
while(value < 100){
// ThreadTask.class加锁后,在释放锁之前不能被其它线程使用;
synchronized (ThreadTask.class) {
System.out.println(Thread.currentThread().getName() + ":" + value ++);
//先唤醒,再让出锁
ThreadTask.class.notify();
try {
//在执行wait()方法后会释放锁,进入等待状态。
ThreadTask.class.wait();
} cat