快捷导航

多线程交替输出

package com.umbrella.container.queue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ThreadTest {    static Lock lock = new ReentrantLock();    static Condition w = lock.newCondition();    static Condition n = lock.newCondition();    static boolean isW = false;    public void printW() {        try {            lock.lock();            while (!isW) {                w.await();            }            System.out.println("w");            n.signalAll();        } catch (InterruptedException e) {            e.printStackTrace();        } finally {            lock.unlock();        }    }    public void printN() {        try {            lock.lock();            while (isW) {                n.await();            }            System.out.println("n");            w.signalAll();        } catch (InterruptedException e) {            e.printStackTrace();        } finally {            lock.unlock();        }    }    public static void main(String[] args) {        ThreadTest t = new ThreadTest();        new Thread(() -> {            t.printW();        }, "w").start();        new Thread(() -> {            t.printN();        }, "n").start();    }}用lock锁 想要做成两个线程交替输出 但老是搓的  哪里错了啊

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

isW的值都没动态变化过
回复

使用道具 举报

可能感兴趣的问答

发新帖
TA的信息
  • 会员所属: 注册会员
  • 认证信息: 邮箱认证手机认证
  • 微信访问
  • 手机APP