线程交替打印输出a1b2c3d4"/>
Java两个线程交替打印输出a1b2c3d4
1、线程1负责输出abcd
public class Thread1 extends Thread {//定义锁对象,负责接收传入对象private final Object lock;//定义共有构造方法public Thread1(Object lock) {// TODO Auto-generated constructor stubthis.lock = lock;}@Overridepublic void run() {String[] string = {"a", "b", "c", "d"};for (int i = 0; i < string.length; i++) {synchronized (lock) {//线程1开始执行lock.notify();try {//线程1开始等待lock.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}//线程1继续执行System.out.print(string[i]);//线程1运行结束lock.notify();}}}
}
2、线程2负责输出1234
public class Thread2 extends Thread {//定义锁对象,负责接收传入对象private final Object lock;//定义共有构造方法public Thread1(Object lock) {// TODO Auto-generated constructor stubthis.lock = lock;}@Overridepublic void run() {String[] string = {"1", "2", "3", "4"};for (int i = 0; i < string.length; i++) {synchronized (lock) {//线程2开始执行lock.notify();try {//线程2开始等待lock.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}//线程2继续执行System.out.print(string[i]);//线程2运行结束lock.notify();}}}
}
3、创建测试类
public class Test {public static void main(String[] args){// TODO Auto-generated method stubfinal Object lock = new Object();Thread1 t1 = new Thread1(lock);Thread2 t2 = new Thread2(lock);t1.start();t2.start();}
}
输出结果
a1b2c3d4
更多推荐
Java两个线程交替打印输出a1b2c3d4
发布评论