遇到一个问题
2个class
ThreadA会打印出6行:每行间隔100ms
1,Thread A
2,Thread A
3,Thread A
4,Thread A
5,Thread A
6,Thread A
ThreadB也会打印出六行:每行间隔100ms
1,Thread B
2,Thread B
3,Thread B
4,Thread B
5,Thread B
6,Thread B
如何使得两个线程有序的打印出来? 先打印完A 在打印B
我想用到synchronised Syste。out 但是具体怎么使用不知道 求解。
------解决方案--------------------
使用wait notify方法
------解决方案--------------------
wait notify为最佳实现,如果jdk1.5 你可以用 信号量
- Java code
package com.ssj.test;public class NotifySynch { private Object lock = new Object(); class ThreadA extends Thread{ @Override public void run() { for(int i = 0 ; i < 6 ; i++){ System.out.println("ThreadA"); } synchronized(lock){ lock.notifyAll(); } } } class ThreadB extends Thread{ @Override public void run() { synchronized(lock){ try { lock.wait(); } catch (InterruptedException e) { } } for(int i = 0 ; i < 6 ; i++){ System.out.println("ThreadB"); } } } public void testRun(){ new ThreadB().start(); new ThreadA().start(); } public static void main(String[] args) { new NotifySynch().testRun(); }}