자바 기반 스 레 드 장애 기

4789 단어 자바
자바 에 장애 기 류 를 추 가 했 습 니 다. 새로운 디자인 수요 에 적응 하기 위해 예 를 들 어 대형 임 무 는 여러 개의 하위 임 무 를 배정 하여 수행 해 야 합 니 다. 모든 하위 임 무 를 수행 할 때 만 메 인 임 무 를 수행 할 수 있 습 니 다. 이때 장애 기 를 선택 할 수 있 습 니 다.장애 기 는 다 중 스 레 드 병행 제어 의 한 수단 이다.
package unit_fifteen;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

/** 
* Java  :   -   
*  
*/ 
public class Test {
        public static void main(String[] args) {
                //     ,   MainTask                        (Runnable)
                CyclicBarrier cb = new CyclicBarrier(7,new MainTask());
                new SubTask("A", cb).start();
                new SubTask("B", cb).start();
                new SubTask("C", cb).start();
                new SubTask("D", cb).start();
                new SubTask("E", cb).start();
                new SubTask("F", cb).start();
                new SubTask("G", cb).start();
        } 
} 

/** 
*     
*/ 
class MainTask implements Runnable { 
        public void run() {
                System.out.println(">>>>      !<<<);
        } 
} 

/** 
*     
*/ 
class SubTask extends Thread { 
        private String name;
        private CyclicBarrier cb;

        SubTask(String name, CyclicBarrier cb) { 
                this.name = name;
                this.cb = cb;
        } 

        public void run() {
                System.out.println("[   " + name +"]     !");
                for (int i = 0; i < 999999; i++) ;    //       
                System.out.println("[   " + name +"]       ,          !");
                try {
                        //         
                        cb.await(); 
                } catch (InterruptedException e) {
                        e.printStackTrace(); 
                } catch (BrokenBarrierException e) {
                        e.printStackTrace(); 
                } 
        } 
}

 
다음으로 전송:https://www.cnblogs.com/yyxiangjava/p/5833786.html

좋은 웹페이지 즐겨찾기