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:
A-1
B-1
B-2
B-3
A-2
B-4
A-3
B-5
A-4
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