两线程交替打印数字
来源:互联网 发布:软件下载源码 编辑:程序博客网 时间:2024/06/05 12:05
问题: 起两个线程,线程1打印奇数,线程2打印偶数,两线程交替打印。
解决方法: 通过wait(),notify()实现。
注:之前是用的wait(),后来运行时,发现最后总有一个线程牌阻塞状态,因此采用的wait(1000)。
代码如下:
package thread;public class ThreadTest { 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==0){ 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();}}
运行结果:
Thread-1 1
Thread-0 2
Thread-1 3
Thread-0 4
Thread-1 5
Thread-0 6
Thread-1 7
Thread-0 8
Thread-1 9
Thread-0 10
0 0
- 两线程交替打印数字
- linux两个线程交替打印数字
- 多线程交替打印数字
- 多线程交替打印数字
- 多线程同步之事件 -- 2个线程交替打印数字
- 面试题一:实现两个线程交替打印数字
- 2.使用线程实现数字与代码的交替打印
- 线程交替打印
- 2个线程交替打印
- 两个线程交替打印ABABAB
- 两个线程交替打印ABABAB
- 两个线程交替打印ABCDEF
- 两个线程的交替打印
- 三个线程交替打印ABC
- java多线程交替打印数字和字母
- 三个Java线程(使用线程池)交替打印1到75个数的两种解法
- 三个Java线程(使用线程池)交替打印1到75个数的两种解法
- 两个线程交替打印字母 java
- ListView空指针
- sort/uniq/cut/wc/
- 黑马程序员---IO流(二)
- ARM、DSP、FPGA的区别
- [Leetcode]H-Index
- 两线程交替打印数字
- JavaScript高级程序设计之DOM之DOM 操作技术之使用NodeList第10.2.4讲
- 正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度
- WPF基础入门
- Linux下查看tomcat连接数
- GCC参数详解
- 介绍几本专业的书籍,一起学习 关于技术 数学方面的
- codeforce 590d
- 如何写一个优秀的首页标题