2009-11-07 3 views
6

Если у меня есть класс, чей метод run() засыпает за 1000 мс, а затем распечатает «Thread». И я запускаю этот поток из своей основной программы, а затем моя основная программа сразу же засыпает за 2000 мс, а затем печатает «Основной поток».Концептуальный вопрос о Java Concurrency

Гарантировано ли, что нить будет напечатана перед основной темой?

ответ

16

Nope. Понятно, что возможно, что система, в которой вы работаете, будет настолько занята, что новая нить даже не получит шанс запустить что-нибудь, прежде чем основной поток успел поспать и распечатать «Главная тема», , На самом деле это маловероятно, конечно, но принципиально sleep: не координационный примитив.

+0

+1: у сна нет никаких гарантий. Он может даже не спать в течение запрошенного времени, потому что он может быть прерван. –

+0

В этом случае не гарантируется, что любое сообщение будет напечатано вообще. ;) –

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