Java两个线程交替打印输出a1b2c3d4

编程入门 行业动态 更新时间:2024-10-27 11:15:13

Java两个<a href=https://www.elefans.com/category/jswz/34/1771240.html style=线程交替打印输出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

本文发布于:2024-02-06 16:23:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750513.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:线程   两个   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!