執行緒的讓步與阻塞

託帕發表於2018-09-09

執行緒的讓步


public class Test{
	public static void main(String[] args){
	    Xc1 xc=new Xc1();
	    Thread aa=new Thread(xc);
	    Thread bb=new Thread(xc);
	    
	    aa.setName("執行緒一");
		bb.setName("執行緒二");
		
		aa.start();
		bb.start();
	}
}

class Xc1 implements Runnable{
	public void run(){
		for(int i=0;i<15;i++){
			System.out.println(Thread.currentThread().getName()+"   "+i);
			if(i%5==0){
				Thread.yield();
			}
		}
	}	
}

 

 

執行緒的阻塞


public class Test{
	public static void main(String[] args){
	    Xc1 xc=new Xc1();
	    Thread aa=new Thread(xc);
	    aa.start();
	    
	    //阻塞時將當前執行緒暫停,直至呼叫join函式所對應的執行緒執行完畢,才繼續執行程式
	    try{
	    	aa.join();
	    }
	    catch(Exception e){
	    	
	    }
	    
	    for(int i=0;i<10;i++){
	    	System.out.println("主執行緒"+i);
	    }
	}
}

class Xc1 implements Runnable{
	public void run(){
		for(int i=0;i<5;i++){
			System.out.println("子執行緒"+i);
		}
	}	
}

相關文章