Создать застрявшую тему (Weblogic) (J2SE) (1.5) - PullRequest
2 голосов
/ 27 февраля 2012

Мне нужно протестировать WLST-скрипт, который проверяет застрявшие потоки в некоторых управляемых экземплярах при развертывании в сети. К сожалению, когда мне нужно проверить, я не могу заставить мою проблему с застрявшей нитью поднять голову. Как я могу намеренно создать застрявший поток, чтобы проверить обнаружение моего сценария? В настоящее время мои мысли заключаются в том, чтобы усыпить поток больше, чем мой застрявший поток в настройках Weblogic, но это также дольше, чем время ожидания для веб-страниц. Так что мой запрос должен прерваться до того, как поток застрянет. Apache commons executor - еще одна идея ... У кого-нибудь есть элегантное решение для воспроизведения этой ужасной проблемы?

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Во-первых, вы никогда не должны создавать потоки в среде Java EE, это запрещено спецификацией. Если ваши приложения делают это, у вас всегда будут проблемы.

В любом случае, «застрявшая нить» немного двусмысленна. Вы можете положить в бесконечный цикл:

while(true){
 try{
  Thread.sleep(1000);
 } catch (Exception e){
  break;
 }
}

или вы можете заблокировать его на мониторе:

while (true){
 new Object().wait();
}
0 голосов
/ 27 февраля 2012

Если вам нужна застрявшая нить, вы можете просто приостановить ее

synchronized(this){
   wait();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...