Expansión de subprocesos (uso de unión)

Veamos una foto juntos:

Cómo renunciar al derecho de ejecución del hilo actual

El método yield (), que solo se puede ver en algunas implementaciones internas del JDK, es ceder los derechos de ejecución y básicamente no se usa. Después de darse por vencido, se vuelve operativo.

método de unión

El método t.join () solo hará que el hilo principal (o el hilo que llama a t.join ()) entre en el grupo de espera y espere a que el hilo t termine de ejecutarse antes de que se despierte. No afecta a otros subprocesos que se ejecutan al mismo tiempo.

análisis:

package CSDN;
public class TestJoin {
 
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
		ThreadTest t1=new ThreadTest("A");
		ThreadTest t2=new ThreadTest("B");
		t1.start();
		t2.start();
	}
 
 
}
class ThreadTest extends Thread {
	private String name;
	public ThreadTest(String name){
		this.name=name;
	}
	public void run(){
		for(int i=1;i<=5;i++){
				System.out.println(name+"-"+i);
		}		
	}
}

Resultado de la impresión:

  1. A-1

  2. B-1

  3. B-2

  4. B-3

  5. A-2

  6. B-4

  7. A-3

  8. B-5

  9. A-4

  10. A-5

Puede ver que los dos subprocesos se ejecutan alternativamente.

Cuando nos unimos a la unión:

package CSDN;
public class TestJoin {
 
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
		ThreadTest t1=new ThreadTest("A");
		ThreadTest t2=new ThreadTest("B");
		t1.start();
		t1.join();
		t2.start();
	}
}

Resultado de la impresión:


A-1
A-2
A-3
A-4
A-5
B-1
B-2
B-3
B-4
B-5

 

Supongo que te gusta

Origin blog.csdn.net/qq_36428821/article/details/113443085
Recomendado
Clasificación