博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有4个线程A、B、C、D,分别打印1、2、3、4,请同时启动他们,但是要求按照1234的顺序输出结果...
阅读量:6221 次
发布时间:2019-06-21

本文共 903 字,大约阅读时间需要 3 分钟。

hot3.png

1、 4个线程ABCD,分别打印1234,请同时启动他们,但是要求按照1234的顺序输出结果。

public class TestABCThread3 {

private Object lock = new Object();

private int count;

public static void main(String[] args) {

TestABCThread3 abc = new TestABCThread3();

new Thread(abc.new Run("C", 3)).start();

new Thread(abc.new Run("D", 4)).start();

new Thread(abc.new Run("A", 1)).start();

new Thread(abc.new Run("B", 2)).start();

}

class Run implements Runnable {

private String _name = "";

private int _threadNum;

public Run(String name, int threadNum) {

_name = name;

_threadNum = threadNum;

}

@Override

public void run() {

synchronized (lock) {

while (true) {

if (count % 4 == _threadNum - 1) {

System.out.println("Thread-Name:" + _name+",No:"+this._threadNum);

count++;

lock.notifyAll();

break;

} else {

try {

lock.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

}

}

转载于:https://my.oschina.net/u/2483853/blog/523438

你可能感兴趣的文章
tcpCopy
查看>>
10个小众网
查看>>
2000条你应知的WPF小姿势 基础篇<15-21>
查看>>
全面拥抱移动测试,Mobile JSON Wire Protocol Specification文档翻译
查看>>
FireDAC 下的 Sqlite [11] - 关于批量提交 SQL 命令的测试
查看>>
ActionResult解析
查看>>
iOS SDK 从配置文件里读SDK。转化成class 可同时加载多个SDK
查看>>
解决Qt Creator编译输出窗口乱码的问题
查看>>
C#获取当前时区转换方法
查看>>
卡片式电脑介绍
查看>>
HTML中Select的使用具体解释
查看>>
经济学发展简史
查看>>
knh
查看>>
PMP考试的过与只是
查看>>
[家里蹲大学数学杂志]第248期东北师范大学2013年数学分析考研试题
查看>>
JAVA数组的定义及用法
查看>>
(转)winform安装项目、安装包的制作、部署
查看>>
C# WinForm 拖动无边框窗体 改变无边框窗体尺寸
查看>>
C++赋值函数详解
查看>>
删除vector中的偶数元素,删除list中的奇数元素
查看>>