public class 三个线程输出到100 { volatile int i = 1; public static void main(String[] args) throws Exception { 三个线程输出到100 obj = new 三个线程输出到100(); Runnable runnable = new Runnable() { @Override public void run() { while (obj.i <= 100) { synchronized (this) { notifyAll(); if (obj.i == 101) { return; } int i = new Integer(Thread.currentThread().getName()); if (obj.i % 3 == i) { System.out.println("Thread " + Thread.currentThread().getName() + " " + obj.i++); } try { if (obj.i == 101) { notifyAll(); return; } else { // 释放掉锁 wait(); } } catch (Exception e) { e.printStackTrace(); } } } } }; Thread t1 = new Thread(runnable); Thread t2 = new Thread(runnable); Thread t3 = new Thread(runnable); t1.setName("1"); t2.setName("2"); t3.setName("0"); t1.start(); t2.start(); t3.start(); } }
三个线程顺序输出到100
最新推荐文章于 2022-04-04 13:09:32 发布