Este es un ejemplo para mostrar cómo usar join (). Pregunta de la entrevista: use Java multi-threading para calcular la expresión 1 * 2 / (1 + 2).
Solución:
Use un hilo para hacer la suma, un hilo para hacer la multiplicación y un hilo principal para hacer la división. Dado que no hay necesidad de comunicar datos entre subprocesos, solo es necesario considerar el orden de ejecución del subproceso.
En el hilo principal, deja adición y multiplicación unirse al hilo principal. El método join () se usa cuando queremos que el hilo principal espere hasta que finalicen los hilos que llaman a join (). En este caso, queremos completar la suma y la multiplicación primero y luego hacer la división.
class Add extends Thread { int value; public void run() { value = 1 + 2; } } class Mul extends Thread { int value; public void run() { value = 1 * 2; } } public class Main{ public static void main(String[] args){ Add t1 = new Add(); Mul t2 = new Mul(); t1.start(); t2.start(); try { t1.join(); t2.join(); } catch (InterruptedException e) { e.printStackTrace(); } double n = ((double)t2.value/t1.value); System.out.println(n); } } |