private static void WaitInQueue(Customer c)
{
synchronized(mutex){
//Do some operation here.
}
}
Мне нужно, чтобы потоки ожидали, прежде чем продолжить (только по одному), однако, похоже, что синхронизированный не использует FIFO для определения того, что следует делать дальше. (Кажется, это LIFO). Почему это?Как Java определяет, какой поток должен выполняться при использовании синхронизации?
Как я могу гарантировать, что первый поток, который будет ждать в синхронизированном состоянии, будет первым, кто сможет продолжить блокировку?
Я думаю, планирование нити позаботятся базовой операционной системы. –
Java не пытается заказать, это по сути случайное. – zapl
использовать очередь для обеспечения честности синхронизации. – bsiamionau