Oak, согласен с Игорем, как раз нормальное использование wait/notify. А вот насчёт synchronized(vector) тут уже да, лишнее.
Oak, wait() как раз из Object. Вызывается для того, чтобы поток-worker заснул, если в очереди нет задач. Каждый из worker'ов синхронизируется здесь по taskQueue, поэтому вызываются taskQueue.wait() и taskQueue.notify(). боюсь, что он совсем для другого нужен.Что ты имеешь в виду?
aNNiMON, он потоконебезопасный же.А зачем тогда synchronized(vector) в коде?
Так, а откуда взялся метод wait()? Я знаю, что он есть в Object, но, боюсь, что он совсем для другого нужен.
DominaN, очередь используется, чтобы первыми выполнились задачи, которые раньше других были переданы на исполнение, принцип FIFO для выполнения задач логичнее выглядит, чем LIFO.
Можно было бы даже какую-нибудь приоритетную очередь поставить.
DominaN, он потоконебезопасный же.
Почему бы не использовать Stack?
aNNiMON, залогиньтесь... Java Категории |