2016-01-14 2 views
0

У меня есть вопрос, сначала часть моего кода.Android - Запуск двух потоков одновременно

 myThread thread1; 
     myThread2 thread2; 
     if (firstThread == null) { 
      (thread1 = new myThread()).start(); 
      Toast.makeText(CreateService.this, "first thread started", 
        Toast.LENGTH_LONG).show(); 
     } 

     if (secondThread== null) { 
      (thread2 = new myThread2()).start(); 
      Toast.makeText(CreateService.this, "second thread started", 
        Toast.LENGTH_LONG).show(); 
     } 

Мой вопрос: ли 2 Темы бегущие знаю, в то же время? Или один за другим? Как будет выглядеть код, в котором они работают одновременно?

Заранее благодарен!

+0

посмотрите на http: /stackoverflow.com/questions/3793135/thread-deadlock-in-java-ee-application – Mohit

ответ

0

резьбы выполняется параллельно, так что если вы создавать более двух нить все будут работать одновременно, чтобы знать, что они работают одновременно/параллельно Регистрирует сообщение от каждого потока, как

От резьбы 1

for(int count=0; count < 100; count++) 
    Log.d("Thread 1":"Count : "+count); 

От резьбы 2

for(int count=0; count < 100; count++) 
    Log.d("Thread 2":"Count : "+count); 
+2

Как ваш код докажет, что потоки выполняются параллельно? Я плохо понимаю. – starkshang

+0

Когда вы находите в Logcat, вы узнали, что сообщения, напечатанные из обоих потоков, не в серии, как Thread 1> Thread 1: Count: 0, Thread 1: Count: 1 ..... Thread 2> Thread 2: Count: 0 , Thread 2: Count: 1 ..... если они последовательно, то он выполняется один за другим, если нет, то параллельно –

+0

спасибо, я думал, что спрашивающий спрашивает, работают ли потоки одновременно в разных CPU? – starkshang

1

Вы в настоящее время в основном потоке:

MAIN 

Начинает thread1:

MAIN 
startsThread1 -> THREAD1 
Toast    thread 1 executes 

Начинает thread2:

MAIN 
startsThread1 -> THREAD1 
Toast    thread 1 executes 
startsThread2 ->      -> THREAD2 
Toast          thread 2 executes 

Вашего Главный поток, thread1 и thread2 будут выполняться одновременно. Ваши тосты будут показаны, пока они оба выполняются, а не потом, потому что вы представляете тост в Основной теме (который, кстати, единственный поток, где вы должны делать изменения пользовательского интерфейса)

Смежные вопросы