面试题一:实现两个线程交替打印数字
2016-09-13 20:06
429 查看
public class Solution1 { private static Object lock = new Object(); private static int i = 1; public static void main(String[] args) { Thread thread1 = new Thread() { public void run() { while (i <= 10) { synchronized (lock) { if (i % 2 == 1) { System.out.println("thread1 " + i++); } else { lock.notifyAll(); try { lock.wait(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } } }; Thread thread2 = new Thread() { public void run() { while (i <= 10) { synchronized (lock) { if (i % 2 == 0) { System.out.println("thread2 " + i++); } else { lock.notifyAll(); try { lock.wait(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } } }; thread1.start(); thread2.start(); } }
相关文章推荐
- 华硕校招面试
- 走上程序员的心路-浅谈
- 剑指Offer---面试题3:二维数组中的查找
- Android知识架构 · 电话面试 · Android事件分发机制
- 微软面试智力题
- 广州某硬件厂商(校招做的非常好)面试总结-Android方向
- java面试题--美团
- 程序员再也不用抢月饼了~
- Android 面试题整理
- 算法:求一个字符串中存在的回文字符串的最大前缀
- 程序员节
- 逻辑面试题
- 河北晟融数据股份有限公司
- 汇编语言(b)--存储器
- Java 类的加载过程(阿里面试题)
- 前端笔试、面试常考题/盒模型/块级元素和行内元素
- 面试题40:数组中只出现一次的数字
- (三大框架SSH)面试题锦集
- Java面试题
- 不少程序员都会碰到的三个面试题