У меня есть некоторые проблемы с использованием потоков в Windows Server 2003.Java резьб поведение на Windows,
main
:
for (int i = 0; i <= 100; i++) {
LogBackWriterRunnable logBackWriterRunnable = new LogBackWriterRunnable(i, logger);
Thread t = new Thread(logBackWriterRunnable);
t.start();
}
LogBackWriterRunnable
:
public void run() {
try{
for(int i = 0; i <=1000;i++){
logger.info("Info Message from process number -------> " + noProceso + cadenaIdentificadora);
logger.warn("Error Message from process number -------> " + noProceso + cadenaIdentificadora);
logger.info("Debug Message from process number -------> " + noProceso + cadenaIdentificadora);
}
}catch(Exception e){
System.out.print("Excepción ---> "+ e);
}
}
Когда я Выполнение выражений приложение на Windows XP (используя t.start();
и t.run();
) Я вижу различное поведение (синхронное и асинхронное), все идеально.
Но когда я использую одно и то же приложение в Windows Server 2003 ED, я вижу только синхронное поведение.
Как вы определении "синхронные" и "асинхронный"? – skaffman
Это может быть разница в разрезе времени. Вы пробовали, например, с 10000 или 100 000 итераций в коде потока вместо 1000? – Tudor
@ skaffman: Вероятно, он означает, что выход журнала чередуется в 'асинхронном'. – Tudor