@My1Name

Как правильно организовать Thread pool?

Есть метод public synchronized read(URL url). Он использует WebDriver selenium, а его объявление как "synchronized" почему-то не срабатывает... Чтоб обойти этот "баг", я пытаюсь создать пул очередности потоков следующим образом:
private static LinkedList<Runnable> pool;
..........................
public synchronized void read(URL url){
Runnable task = Thread.currentThread();
		pool.add(task);
		if (!pool.isEmpty() && pool.size()>1)
			try { task.wait();
			} catch (InterruptedException e1) {
				e1.printStackTrace();
			}
// body of method read
..........................
		  pool.removeFirst();
		  if (!pool.isEmpty()) {
			  Runnable first = pool.getFirst();
			  first.notify();
		  }
	    }

Таким образом получается
java.lang.IllegalMonitorStateException.
Как правильно организовать Thread pool?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sputterspark
@Sputterspark
Правильно использовать пул из стандартной библиотеки, а не городить костыли. Как пулы связаны с синхронизацией вообще непонятно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы