Java多线程:用三个线程控制循环输出10次ABC

题目:有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C,,要求, 同时启动三个线程, 按顺序输出ABC, 循环10次。

解题思路:要按顺序输出ABC, 循环10次,就要控制三个线程同步工作,也就是说要让三个线程轮流输出,直到10个ABC全部输出则结束线程。这里用一个Lock对象来控制三个线程的同步。用一个int型变量state标识由那个线程输出。

1 package com.thread; java.util.concurrent.locks.Lock; 4 import java.util.concurrent.locks.ReentrantLock; ABC {state = 0; main(String[] args) {10final Lock l = new ReentrantLock();1112Thread A = new Thread(new Runnable(){13 @Override run() {15while (state<=30) {16 l.lock();17if(state%3==0){18System.out.println(“A”);19state ++;20 }21 l.unlock();22 }23 }24 });25Thread B = new Thread(new Runnable(){26 @Override run() {28while (state<=30) {29 l.lock();30if(state%3==1){31System.out.println(“B”);32state ++;33 }34 l.unlock();35 }36 }37 });38Thread C = new Thread(new Runnable(){39 @Override run() {41while (state<=30) {42 l.lock();43if(state%3==2){44System.out.println(“C”);45state ++;46 }47 l.unlock();48 }49 }50 });51 A.start();52 B.start();53 C.start();54 }55 56 }接受失败也等于给了自己从零开始的机会,

Java多线程:用三个线程控制循环输出10次ABC

相关文章:

你感兴趣的文章:

标签云: