Как можно обработать В подзапросе с LINQ к SQL?

Вы отметили правильно, что notifyAll должен быть назван от синхронизируемого блока.

Однако в Вашем случае, из-за автоупаковки, объект, на котором Вы синхронизировались, не является тем же экземпляром, на который Вы вызвали notifyAll. На самом деле, новое, увеличенное foo, экземпляр все еще ограничен стеком, и никакие другие потоки не могли возможно быть заблокированы на wait вызов.

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

53
задан Ian Oxley 8 September 2008 в 20:20
поделиться