Java多线程:用三个线程控制循环输出10次ABC
来源:互联网 发布:美图还原软件 编辑:程序博客网 时间:2024/06/05 00:09
题目:有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C,要求, 同时启动三个线程, 按顺序输出ABC, 循环10次。
解题思路:要按顺序输出ABC, 循环10次,就要控制三个线程同步工作,也就是说要让三个线程轮流输出,直到10个ABC全部输出则结束线程。这里用一个Lock对象来控制三个线程的同步。用一个int型变量COUNT标识由那个线程输出。
import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class PrintABC { public static int cnt = 0; public static final int COUNT = 30; public static void main(String[] args) { final Lock lock = new ReentrantLock(); Thread A = new Thread(new Runnable(){ @Override public void run() { while(true){ lock.lock(); if(cnt>=COUNT){ lock.unlock(); return; } if(cnt%3==0){ System.out.println("A"); cnt++; } lock.unlock(); } } }); Thread B = new Thread(new Runnable(){ public void run(){ while(true){ lock.lock(); if(cnt>=COUNT){ lock.unlock(); return; } if(cnt%3==1){ System.out.println("B"); cnt++; } lock.unlock(); } } }); Thread C = new Thread(new Runnable(){ public void run(){ while(true){ lock.lock(); if(cnt>=COUNT){ lock.unlock(); return; } if(cnt%3==2){ System.out.println("C"); cnt++; } lock.unlock(); } } }); A.start(); B.start(); C.start(); }}
程序运行结果如下:
ABCABCABCABCABCABCABCABCABCABC
转载地址:http://www.cnblogs.com/gaopeng527/p/5257884.html
0 0
- Java多线程:用三个线程控制循环输出10次ABC
- Java多线程:用三个线程控制循环输出10次ABC
- Java多线程:用三个线程控制循环输出10次ABC
- Java多线程:用三个线程控制循环输出10次ABC
- 用三个线程控制循环输出10次ABC
- Java多线程--三个线程分别打印a,b,c.请用多线程实现循环打印15次abc
- 多线程之三个ABC线程实现循环打印100次
- Java多线程 循环打印ABC 10次
- 循环打印三个线程,ABC 十次
- 循环输出10次ABC
- 多线程(至少三个线程)分别打印A、B、C,要求按ABC的顺序循环打印10次。
- java 多线程循环输出ABC
- java多线程:循环输出ABC
- 写一个程序三个线程分别输出A,B,C, 顺序输出ABC十次,用java实现
- 面试题--三个线程循环打印ABC 10次:另类解决方法
- 题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕打印10次ABC
- 启动三个线程A,B,C,打印10次 按照ABC的顺序输出
- 通过线程按照顺序循环输出ABC n次
- Error: Your project contains C++ files but it is not using a supported native build system
- bzoj 2257: [Jsoi2009]瓶子和燃料 (gcd+map)
- Javascript 将阿拉伯数字转换成罗马数字
- Unicode(UTF-8, UTF-16)令人混淆的概念
- PAT题型分类 & 跟着《算法笔记》撸PAT的记录汇总
- Java多线程:用三个线程控制循环输出10次ABC
- opencv之GrabCut函数使用和源码解读
- 静态类型与动态类型
- 自己动手系列——实现一个简单的LinkedLis
- linux C 下获取系统时间
- jQuery动画
- MySql组内排序并展示行号
- UnityWebPlayer屏蔽右键及全屏
- 查看相应端口被占用的应用