Java循环打印ABC…
来源:互联网 发布:高一英语听力软件 编辑:程序博客网 时间:2024/05/29 14:55
import java.util.HashMap;import java.util.Map;/** * 循环打印ABC… * @author 健身小码哥 * */public class PrintABC {public static void main(String[] args) {new PrinterTask("A").start();;new PrinterTask("B").start();;new PrinterTask("C").start();;}}/** * 打印线程 * @author 健身小码哥 * */class PrinterTask extends Thread{/** * 当前线程要打印的字符 */private String value;/** * 标识下一个需要打印的字符,默认从A开始 */static String nextPrintValue = "A";/** * 保存字符的打印顺序 */static Map<String,String> nextValueMap;static {nextValueMap = new HashMap<>();nextValueMap.put("A", "B");nextValueMap.put("B", "C");nextValueMap.put("C", "A");}PrinterTask(String printValue){this.value = printValue;}@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();while(true){synchronized (nextValueMap) {//获取锁之后,判断自己负责打印的字符与下一个要求打印的字符是否相符,如果相符,打印if(value.equals(nextPrintValue)){System.out.println(value);//打印之后,对下一个需要打印的字符进行赋值nextPrintValue = nextValueMap.get(value);nextValueMap.notifyAll();}else{try {//如果不相符,等待nextValueMap.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
阅读全文
1 0
- Java循环打印ABC…
- Java多线程 循环打印ABC 10次
- java三线程循环有序打印ABC
- Java三线程循环有序打印ABC
- 多线程循环打印ABC
- Java线程锁(二)——循环打印ABC
- 三个线程循环打印ABC。。。。
- JAVA多线程打印ABC
- 3个线程循环打印ABC
- 使用信号量Semaphore循环打印ABC
- 循环打印三个线程,ABC 十次
- c++多线程实现循环打印ABC
- 三条线程循环打印ABC.
- java多线程顺序打印ABC
- JAVA 多线程轮流打印ABC
- java 多线程顺序打印ABC
- java 多线程循环输出ABC
- java多线程:循环输出ABC
- KinectFittingRoom2 研究
- Vue2.0 axios报错: Cannot read property 'protocol' of undefined
- HTML页面跳转的5种方法
- jquery中prepend操作插入元素示例
- 【解决】Ubuntu安装NVIDIA驱动后桌面循环登录问题
- Java循环打印ABC…
- Fragment流程图
- unity 开发中遇到的各种问题,及其解决问题的出处
- Python: 文件操作与数据读取
- 2017上半年阅读心得
- kotlin anko的使用gradle中需添加添加
- C语言判断计算机cpu大小端
- Error launching Android Studio: Failed to create JVM: error code-1解决办法
- Zynq中通过xilffs读写SD卡