Thread2 espera Thread1 para completar para empezar problema? Java

George Dim:

Así que tengo un código simple que quiero imprimir el valor i 10 veces con Thread1, después de que 10 veces de Thread2 y al final, imprimir el recuento (que debería ser 20). Estoy utilizando el ".join ()", pero el resultado es excecuting momentos aleatorios de Thread1 y Thread2 y luego la suma es correcta. ¿Cómo puede es posible imprimir el primer bucle de Thread's1 y luego el Tread's2 ??

class MyClass extends Thread {  

     public static synchronized void incount() {
         SimpleThreads.count++;
     } 
        public void run() { 

            for(int i=0; i<10; i++) { 
                    incount();  
                    System.out.println(Thread.currentThread().getId()+" value : " + i);
            }
        }           
    }

public class SimpleThreads {

     static int count=0;

    public static void main(String[] args) {

        MyClass thread1 =new MyClass();
        MyClass thread2 =new MyClass();

        thread1.start(); 
        thread2.start();
        try {
            thread1.join();
            thread2.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println(" Sum : "+count);
    }
}

El resultado :

11 value : 0
10 value : 1
11 value : 1
10 value : 2
11 value : 2
10 value : 3
11 value : 3
11 value : 4
11 value : 5
11 value : 6
11 value : 7
11 value : 8
11 value : 9
10 value : 4
10 value : 5
10 value : 6
10 value : 7
10 value : 8
10 value : 9
 Sum : 20
Shivam reunió:

Usted está comenzando Thread2antes de llamar al join()sobre thread1.
Es por eso que sus dos hilos se ejecutan simultáneamente y, básicamente, su unión no se afecte a los run()de cualquier otro de los 2 hilos.

Trate de cambiar su inicio y unirse a llamar código para algo como esto;

try{
    thread1.start();
    thread1.join();
    thread2.start();
}

No debería ser necesario llamar join()en thread2 en este caso.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=406056&siteId=1
Recomendado
Clasificación