Notas de estudio del método Java thread join ()

Un hilo puede llamar al método join () en otros hilos. El efecto es esperar un período de tiempo hasta que el segundo hilo termine antes de continuar. Si un hilo llama a t.join () en otro hilo t, este hilo se suspenderá y no se reanudará hasta que el hilo de destino t finalice (es decir, t.isAlive () devuelve falso).

También puede traer un parámetro de tiempo de espera al llamar al método join () (las unidades pueden ser milisegundos o milisegundos y nanosegundos), por lo que si el hilo de destino no ha terminado cuando este tiempo expira, el método join () siempre puede regresar .

La llamada al método join () se puede interrumpir llamando al método interrumpido () en el hilo de llamada. En este momento, se requiere una cláusula try-catch.

class Sleeper extends Thread{
    
    
	private int duration;
	public Sleeper(String name,int sleepTime) {
    
    
		super(name);
		duration=sleepTime;
		start();
	}
	public void run() {
    
    
		try {
    
    
			sleep(duration);
		}catch(InterruptedException e) {
    
    
			System.out.println(getName()+" was interrupted. "+" is interrupted: "+isInterrupted());
			return;
		}
		System.out.println(getName()+" has awakened");
	}
}
class Joiner extends Thread{
    
    
	private Sleeper sleeper;
	public Joiner(String name,Sleeper sleeper) {
    
    
		super(name);
		this.sleeper=sleeper;
		start();
	}
	public void run() {
    
    
		try {
    
    
			sleeper.join();
		}catch(InterruptedException e) {
    
    
			System.out.println("Interrupted");
		}
		System.out.println(getName()+" join completed");
	}
}
public class Joining {
    
    

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
        Sleeper sleepy=new Sleeper("Sleepy",1500),
        		grumpy=new Sleeper("grumpy",1500);
        Joiner dopey=new Joiner("Dopey",sleepy),
        		doc=new Joiner("Doc",grumpy);
        grumpy.interrupt();
	}

}
/*
grumpy was interrupted.  is interrupted: false
Doc join completed
Sleepy has awakened
Dopey join completed
*/

Supongo que te gusta

Origin blog.csdn.net/weixin_43916777/article/details/104228699
Recomendado
Clasificación