@RunWith(SpringJUnit4ClassRunner.class) public class ThreadTest { private Object lock = new Object(); private AtomicInteger a = new AtomicInteger(0); @Test public void tu() { new Thread(new lock(lock,a),"偶数").start(); try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } new Thread(new lock(lock,a),"奇数").start(); } } class lock implements Runnable{ private Object lock = null; private AtomicInteger a; public lock(Object lock,AtomicInteger a) { this.lock = lock; this.a = a; } @Override public void run() { while (a.intValue() <= 100) { synchronized (lock) { System.out.println(Thread.currentThread().getName()+":"+ a.intValue()); a.addAndGet(1); lock.notifyAll(); try { if (a.intValue() <= 100) { lock.wait(); } }catch (InterruptedException e) { e.printStackTrace(); } } } } }
两个线程一个打印偶数一个打印奇数直到等于100时停止
最新推荐文章于 2023-12-15 16:00:38 发布