전통 스 레 드 통신-스 레 드 실행 과정 에서 조건 전환-학습 노트 10
사례:
현재 두 개의 스 레 드 가 존재 한다 고 가정 하면 메 인 스 레 드 main 과 한 개의 스 레 드 는 먼저 하위 스 레 드 를 5 번 실행 한 다음 에 메 인 스 레 드 로 전환 하여 10 번 실행 한 다음 에 하위 스 레 드 로 전환 하여 5 번 실행 하고 메 인 스 레 드 는 10 번 실행 합 니 다.이렇게 각각 3 번 순환 합 니 다.
프로그램 코드 는 다음 과 같 습 니 다:
/**
*
* @author
* @date May 24, 2014 5:08:12 PM
*/
public class ConditionTest {
public static void main(String[] args) {
final Business2 b = new Business2();
// 1 20
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 3; i++) {
b.sub1(i);
}
}
}).start();
for (int i = 0; i < 3; i++) {
b.main2(i);
}
}
}
class Business2 {
private boolean action = true;
public synchronized void sub1(int once) {
while (!action) {//
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for (int i = 0; i < 5; i++) {
System.out.println("Sub1 " + once + " runing *********" + i);
}
action = false;
this.notify();
}
public synchronized void main2(int once) {
while (action) {//
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for (int i = 0; i < 10; i++) {
System.out.println("Main2 " + once + " runing *********" + i);
}
action = true;
this.notify();
}
}
출력 결과:
Sub1 0 runing *********0
Sub1 0 runing *********1
Sub1 0 runing *********2
Sub1 0 runing *********3
Sub1 0 runing *********4
Main2 0 runing *********0
Main2 0 runing *********1
Main2 0 runing *********2
Main2 0 runing *********3
Main2 0 runing *********4
Main2 0 runing *********5
Main2 0 runing *********6
Main2 0 runing *********7
Main2 0 runing *********8
Main2 0 runing *********9
Sub1 1 runing *********0
Sub1 1 runing *********1
Sub1 1 runing *********2
Sub1 1 runing *********3
Sub1 1 runing *********4
Main2 1 runing *********0
Main2 1 runing *********1
Main2 1 runing *********2
Main2 1 runing *********3
Main2 1 runing *********4
Main2 1 runing *********5
Main2 1 runing *********6
Main2 1 runing *********7
Main2 1 runing *********8
Main2 1 runing *********9
Sub1 2 runing *********0
Sub1 2 runing *********1
Sub1 2 runing *********2
Sub1 2 runing *********3
Sub1 2 runing *********4
Main2 2 runing *********0
Main2 2 runing *********1
Main2 2 runing *********2
Main2 2 runing *********3
Main2 2 runing *********4
Main2 2 runing *********5
Main2 2 runing *********6
Main2 2 runing *********7
Main2 2 runing *********8
Main2 2 runing *********9
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.