Запитання з тегом «java.util.concurrent»

10
Синхронізація проти блокування
java.util.concurrentAPI надає клас, який називається як Lock, який би в основному серіалізував керування для доступу до критичного ресурсу. Він дає такий метод, як park()і unpark(). Ми можемо зробити подібні речі, якщо зможемо використовувати synchronizedключове слово, використовуючи wait()і notify() notifyAll()методи. Мені цікаво, що з них краще на практиці і чому?

8
Чи є Mutex на Java?
Чи є об'єкт Mutex в Java або спосіб створити його? Я прошу, тому що об'єкт Semaphore, ініціалізований з 1 дозволом, не допомагає мені. Подумайте про цей випадок: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } якщо виняток трапляється при першому придбанні, вивільнення в блоці вилову …

3
FixedThreadPool vs CachedThreadPool: менша з двох зол
У мене є програма, яка породжує теми (~ 5-150), які виконують купу завдань. Спочатку я використовував те, FixedThreadPoolтому що подібне запитання припускало, що вони краще підходять для більш тривалих завдань, і з моїх дуже обмежених знань багатопотокової роботи я вважав середню тривалість життя ниток (кілька хвилин) " довго прожили ". …

2
Скільки потоків породжується паралельним потоком у Java 8?
У JDK8, скільки потоків породжується, коли я використовую паралельний потік? Наприклад, у коді: list.parallelStream().forEach(/** Do Something */); Якщо цей список містить 100000 елементів, скільки потоків буде породжено? Крім того, чи отримує кожна з ниток однакову кількість предметів для роботи, чи вона виділяється випадковим чином?

3
ОЧІКУВАННЯ на sun.misc.Unsafe.park (рідний метод)
Одне з моїх програм зависає під деяким періодом роботи під навантаженням, чи хтось знає, що може спричинити такий вихід у jstack: "scheduler-5" prio=10 tid=0x00007f49481d0000 nid=0x2061 waiting on condition [0x00007f494e8d0000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000006ee117310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1085) at …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.