Как вы можете гарантировать в Java, что блок кода не может быть прерван любым другим потоком - PullRequest
11 голосов
/ 03 декабря 2008

exampl:

new Thread(new Runnable() {
  public void run() {
    while(condition) {

      *code that must not be interrupted*

      *some more code*
    }
  }
}).start();

SomeOtherThread.start();

YetAntherThread.start();

Как вы можете гарантировать, что код, который не должен прерываться , не будет прерван?

Ответы [ 11 ]

1 голос
/ 03 декабря 2008

Лучшим решением на полпути было бы синхронизировать все потоки на некотором общем объекте, чтобы другие потоки не работали, пока вы находитесь в критической секции.

Кроме этого, я не думаю, что это возможно. И мне довольно любопытно, что за проблема, которая требует решения такого типа?

...