자바 프로 그래 밍 사상 연습 문제-제2 1 장 연습 1-yield

제목:Runnable 을 실현 합 니 다.run()내부 에 메 시 지 를 인쇄 하고 yield()를 호출 합 니 다.이 조작 을 세 번 반복 한 후에 run 에서 되 돌려 줍 니 다.구조 기 에 시작 메 시 지 를 설치 하고 작업 이 끝 날 때 닫 는 메 시 지 를 설치 합 니 다.스 레 드 를 사용 하여 대량의 작업 을 만 들 고 그들 을 구동 합 니 다.
 
package test;

public class test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=1;i<=10;i++){
			new Thread(new runabletest()).start();;
		}
	}

}

class runabletest implements Runnable{
	public String  startstr="start!";
	public  String stopstr="stop!";
	static int num=0;
	public int id;
	public runabletest(){
		num++;
		id=num;
		startstr="#"+id+"  "+startstr;
		stopstr="#"+id+"  "+stopstr;
		System.out.println(startstr);
		
	}
	@Override
	public void run() {
		for(int i=1;i<=3;i++){
			System.out.println("#"+id+" loop"+i);
			Thread.yield();
		}
		System.out.println(stopstr);
	}
	
}

 결 과 는:
#1  start!
#2  start!
#3  start!
#1 loop1
#2 loop1
#2 loop2
#1 loop2
#1 loop3
#1  stop!
#2 loop3
#2  stop!
#4  start!
#3 loop1
#3 loop2
#5  start!
#4 loop1
#3 loop3
#4 loop2
#3  stop!
#4 loop3
#4  stop!
#6  start!
#7  start!
#5 loop1
#5 loop2
#5 loop3
#5  stop!
#7 loop1
#6 loop1
#8  start!
#6 loop2
#7 loop2
#7 loop3
#6 loop3
#6  stop!
#7  stop!
#9  start!
#8 loop1
#8 loop2
#8 loop3
#8  stop!
#10  start!
#9 loop1
#9 loop2
#9 loop3
#9  stop!
#10 loop1
#10 loop2
#10 loop3
#10  stop!

 yield 를 제거 하면 결 과 는:
#1  start!
#2  start!
#3  start!
#1 loop1
#1 loop2
#1 loop3
#1  stop!
#4  start!
#2 loop1
#5  start!
#2 loop2
#2 loop3
#2  stop!
#5 loop1
#5 loop2
#5 loop3
#5  stop!
#3 loop1
#3 loop2
#3 loop3
#3  stop!
#4 loop1
#4 loop2
#4 loop3
#4  stop!
#6  start!
#7  start!
#8  start!
#7 loop1
#7 loop2
#7 loop3
#7  stop!
#6 loop1
#6 loop2
#6 loop3
#6  stop!
#9  start!
#10  start!
#9 loop1
#9 loop2
#9 loop3
#9  stop!
#10 loop1
#10 loop2
#10 loop3
#10  stop!
#8 loop1
#8 loop2
#8 loop3
#8  stop!

 결론:우 리 는 yield 를 제거 한 후에 모든 스 레 드 의 세 번 의 순환 이 대체적으로 한꺼번에 출력 되 었 다 는 것 을 알 게 되 었 습 니 다.작업 이 비교적 간단 하기 때문에 한 시간 안에 완성 할 수 있 기 때문에 중간 에 문맥 을 바 꾸 지 않 았 습 니 다.한편,yield 가 증가 한 후에 순환 을 한 번 실행 한 후에 이 스 레 드 는 큰 확률 로 전환 되 었 다.

좋은 웹페이지 즐겨찾기