Курс многопоточности в Java

Синхронизация потоков

1/9

Дано:

3. class Dudes {
4.    static long flag = 0;
5.    // insert code here
6.      if(flag == 0) flag = id;
7.      for(int x = 1; x < 3; x++) {
8.         if(flag == id) System.out.print("yo ");
9.         else System.out.print("dude ");
10.     }
11.   }
12. }
13. public class DudesChat implements Runnable {
14.    static Dudes d;
15.    public static void main(String[] args) {
16.        new DudesChat().go();
17.    }
18.    void go() {
19.        d = new Dudes();
20.        new Thread(new DudesChat()).start();
21.        new Thread(new DudesChat()).start();
22.    }
23.    public void run() {
24.        d.chat(Thread.currentThread().getId());
25.    }
26. }

И даны следующие два фрагмента:

I. synchronized void chat(long id) {

II. void chat(long id) {

Какие утверждения верны при добавлении фрагмента I или фрагмента II в строку 5? (Выберите все подходящие.)

Comments