2012-06-30 2 views
0

Я выполнения java-synchronisation example в:Изменение синхронизируется нити порядка выполнения

код вызова Thread:

Caller ob1 = new Caller(target, "Hello"); 
Caller ob2 = new Caller(target, "Synchronized"); 
Caller ob3 = new Caller(target, "World"); 

Выход:

 
[Hello] 
[World] 
[Synchronized] 

Почему "Синхронный" печатается последний, хотя он называется вторым?

+0

Подумайте, в том числе объяснение тестируемого здесь кода, а не заставляя читателей изучать связанный код, который может уйти в любой момент времени. – seh

+0

Я попытался привести код в справочный поток, но StackOverflow не позволяет мне сохранять, так как он считает, что объяснение кода очень мало. – Arun

ответ

1

Гарантия не установлена ​​в порядке исполнения. Это дискреционное право JVM.

Вызов метода start() экземпляра Thread не гарантирует, что он будет запущен сразу после вызова метода.

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