Java多线程:用三个线程控制循环输出10次ABC
来源:互联网 发布:矩阵a2 a 编辑:程序博客网 时间:2024/05/21 14:05
题目:有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C,要求, 同时启动三个线程, 按顺序输出ABC, 循环10次。
解题思路:要按顺序输出ABC, 循环10次,就要控制三个线程同步工作,也就是说要让三个线程轮流输出,直到10个ABC全部输出则结束线程。这里用一个Lock对象来控制三个线程的同步。用一个int型变量state标识由那个线程输出。
1 package com.thread; 2 3 import java.util.concurrent.locks.Lock; 4 import java.util.concurrent.locks.ReentrantLock; 5 6 public class ABC { 7 private static int state = 0; 8 9 public static void main(String[] args) {10 final Lock l = new ReentrantLock();1112 Thread A = new Thread(new Runnable(){13 @Override14 public void run() {15 while (state<=30) {16 l.lock();17 if(state%3==0){18 System.out.println(“A”);19 state ++;20 }21 l.unlock();22 }23 }24 });25 Thread B = new Thread(new Runnable(){26 @Override27 public void run() {28 while (state<=30) {29 l.lock();30 if(state%3==1){31 System.out.println(“B”);32 state ++;33 }34 l.unlock();35 }36 }37 });38 Thread C = new Thread(new Runnable(){39 @Override40 public void run() {41 while (state<=30) {42 l.lock();43 if(state%3==2){44 System.out.println(“C”);45 state ++;46 }47 l.unlock();48 }49 }50 });51 A.start();52 B.start();53 C.start();54 }5556 }
运行结果:
A
B
C
A
B
C
A
B
C
A
B
C
A
B
C
A
B
C
A
B
C
A
B
C
A
B
C
A
B
C
A
B
C
阅读全文
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次
- 处理日期--cookbook读书笔记
- 线性表链表表相关习题及详解(综合) ——数据结构
- Android读书笔记
- 【LeetCode】C# 107、Binary Tree Level Order Traversal II
- 电商项目面试题
- Java多线程:用三个线程控制循环输出10次ABC
- 关于产品测试
- Butternife配置
- centos7 rhel7 linux怎么安装shutter 有哪些最好的截图工具
- js高级部分--对象
- python 调度框架APScheduler使用详解
- 奇异值的物理意义
- linux下vim的配置
- 自然语言处理-简介