两个线程一次打印数字
程序员文章站
2024-01-22 13:13:10
...
public class Test { private static boolean flag = true; private static final Object LOCK = new Object(); private static int i=0; public static void print(String name){ i++; System.out.println(name+"------"+i); } public static void main(String[] args) { // 两个线程 交替打印字符串 Thread a = new Thread() { public void run() { while (i < 100) synchronized (LOCK) { { if (false == flag) { try { LOCK.wait();// 在wait后的瞬间线程b得到锁 } catch (InterruptedException e) { e.printStackTrace(); } } flag = false; print(getName()); LOCK.notify();// 在这里虽然唤醒了另一个线程b,但锁并没有释放 } } }; }; Thread b = new Thread() { public void run() { while (1<100) synchronized (LOCK) { { if (true == flag) { try { LOCK.wait();// 在wait后的瞬间线程b得到锁 } catch (InterruptedException e) { e.printStackTrace(); } } flag = true; print(getName()); LOCK.notify();// 在这里虽然唤醒了另一个线程b,但锁并没有释放 } } }; }; a.start(); b.start(); } }
上一篇: PS给文字填充漂亮的花的背景
下一篇: tomcat8源码构建
推荐阅读
-
两个线程一次打印数字
-
两个线程轮流对一个全局变量执行加1操作并且打印
-
C语言编程实现之一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
-
经典面试题——两个线程交替打印奇数和偶数
-
如何创建一个主线程两个子线程实现1-100数字输出?
-
【剑指offer】面试题56(1):数组中只出现一次的两个数字
-
剑指offer:数组中只出现一次的两个数字(java版)
-
剑指offer 面试题56 python版+解析:数组中只出现一次的两个数字,数组中唯一只出现一次的数字
-
剑指offer第二版-56.数组中只出现一次的两个数字
-
【算法分享】剑指offer56-数组中只出现一次的两个数字