Технологии Java
Concurrency Utilities
Действие | Исключение | Значение | Ожидание |
---|---|---|---|
Вставка | add(e) | offer(time?) | put(e) |
Чтение | element() | peek() | |
Удаление | remove() | poll(time?) | take() |
while (true) { E e; // Создание элемента queue.put(e); }
while (true) { E e = queue.take(); // Обработка элемента }
class Max extends RecursiveTask<Integer> { private final List<Integer> data; public Max(List<Integer> data) { this.data = data; } public Integer compute() { int s = data.size(); if (s == 1) return data.get(0); Max m1 = new Max(data.subList(0, s / 2)); Max m2 = new Max(data.subList(s / 2, s)); m2.fork(); return Math.max(m1.compute(), m2.join()); } }
final Max task = new Max(data); ForkJoinPool.commonPool().execute(task); Integer max = task.get();