cost 326 ms
即使 LinkedBlockingQueue 為空,線程也會阻塞

[英]Thread blocking even when LinkedBlockingQueue is empty

為了進行清楚的調查,我只有一個線程生成一個實體,一個線程使用它。 這兩部分共享LinkedBlockingQueue。 在使用實體后,線程將其轉發給其他線程以將實體保存在數據庫中。 在通過隊列插入和刪除實體的幾次迭代后,生產線程停止工作。 調試日志顯示它就像隊列阻塞插入操作一樣,即使隊列為空或有足夠 ...

Striped ReadWriteLock 拋出 IllegalMonitorStateException - 嘗試解鎖讀鎖,未被當前線程鎖定

[英]Striped ReadWriteLock throwing IllegalMonitorStateException - Attempt to unlock read lock, not locked by current thread

我們正在編寫一個並發多圖來為多線程應用程序中的同一個鍵存儲多個值。 我們擴展了 Guava ForwardingMultimap 來做同樣的事情。 Put 和 remove 方法獲取一個鍵的寫鎖並在最后釋放它。 類似地獲取鍵的讀鎖並在最后釋放它。 我已經通過在本地系統中使用多個線程對此進行了測試, ...

CompletableFuture 控制方式異常中止

[英]CompletableFuture controlled way abort on exception

假設我有一個CompletableFuture ,其中有幾個鏈接的階段: 假設如果<stage1>中發生錯誤,我們希望中止<stage2>的執行並返回SOME_DEFAULT_VALUE 。 給定以下選項: 選項 A是中止鏈式執行階段的正確方法嗎? 在選項 B中,有什么方法可 ...

使用 Java 的 ReadWriteLocks 實現多線程 web 爬蟲

[英]Implementing a multi-threaded web crawler with Java's ReadWriteLocks

我正在嘗試使用 ReadWriteLocks 實現多線程 web 爬蟲。 我有一個調用 API 的 Callable 來獲取頁面 URL 並在它們不存在於已見 URL 集中時抓取它們。 從 ExecutorService 我使用三個線程進行爬網。 問題是 - 不同的線程正在讀取相同的 URL 兩次。 ...

為什么 Semaphore 實現使用 CAS (U.compareAndSetInt) 而不是等待/通知?

[英]Why the Semaphore implementation uses CAS (U.compareAndSetInt) instead of wait/notify?

我決定從頭開始實現並發 package 的一些類,並通過等待/通知實現信號量。 這樣做似乎非常容易和直觀。 當我檢查構建實現時,我看到他們使用 CAS(比較和交換)技術使這一切變得復雜。 他們為 ReentranceLock 實現做了同樣的事情。 為什么他們決定這樣做? 是因為性能嗎? 也許我也應 ...

Java ConcurrentModificationException 用於從多線程寫入數組列表

[英]Java ConcurrentModificationException for writing to array list from multiple thread

在 java 我有以下項目 class 我正在從引發並發異常錯誤的多個線程訪問此 class 的列表元素。 它與 CopyOnWriteArrayList 完美配合,但在實際場景中,列表正在從多個位置多次編輯,因此 CopyOnWriteArrayList 對我來說不是一個好的選擇。 我也不能使用迭 ...

RecursiveAction 無法解析為類型

[英]RecursiveAction cannot be resolved to a type

當我將 jdk17.0.2 添加到我的構建路徑中時,在 STS(eclipse) 中,替換 15,RecursiveAction 無法解析為一種類型。 是什么賦予了? 我知道 java.util.concurrent.RecursiveAction 沒有從 jdk 中刪除。 恢復到 15 解決了它。 ...

如何在java中測量多線程任務的執行時間

[英]How to Measure execution time for a multi threaded task in java

我有一個方法可以讓我們說對 API 的 100k http 調用,因此我同時進行 http 調用以避免 http 瓶頸。 但我也想在不阻塞任何線程的情況下對整個方法進行計時。 ExecutorService service = Executors.newFixedThreadPool ...

異常時向 executorService 重新提交 Callable

[英]Resubmit Callable to executorService on exception

我的情況 我正在嘗試制作一個功能,該功能將對給定端點執行 n(其中 n >=0)請求,但我確實理解有時該端點可能由於 500 錯誤或其他問題而無法響應,所以我想重復我的對端點的請求(在[尚未實現]之間有一個小間隔)直到我得到響應,或者直到我得到一個未知的錯誤,這表明我不能重復,因為除了崩潰的服 ...

等待 ScheduledExecutorService 中的所有作業完成,同時允許添加新作業

[英]wait for all jobs in a ScheduledExecutorService to finish, while allowing new jobs to be added

我正在使用ScheduledExecutorService跨多個線程調度和處理作業。 在我的應用程序中,一個作業可以安排一個新作業(在同一個ScheduledExecutorService上),作為某種后續操作。 在主線程中,我想等到所有作業都完成后,作為同步點。 有shutdown()和awai ...

如何在 Java 中獨立運行 Timer?

[英]How to run Timer independently in Java?

我正在嘗試為每個計時器構建多個Timers並安排獨立的任務。 我有一個用於保存Timer及其變量的構造函數。 然后,我將它們一一調用,但我發現傳遞給Timer構造函數的變量被彼此覆蓋。 我已經將每個Timer作為新實例啟動,但仍然無法解決問題。 如何確保計時器獨立運行? 代碼: 要觸發計時器: ...

具有背壓的 ExecutorService

[英]ExecutorService with backpressure

我對ExecutorService有以下要求: 有限數量的並發處理任務(線程),最好是可配置的 當所有線程都被占用時,隨后提交的任務就會排隊。 隊列應該應用背壓:如果提交的任務太多並且隊列已滿,則提交應該阻塞。 阻塞提交可以有一個超時:如果一個任務在給定時間內沒有提交,應該拋出一個異 ...

Java並發編程-死循環

[英]Java concurrent programming - endless loop

我正在閱讀介紹 Play 框架的書:Java Web Application Development (ISBN 978-1-4842-5645-9) 並且在Callable上有這個例子: 我的問題是,如果Future的計算拋出異常, while循環會永遠運行嗎? 在我看來,是的,它將永遠循環。 首 ...

Java並發:試圖識別我的乘客來自哪個航班

[英]Java Concurrent: trying to identify my passengers are from which flight

我試圖在我的項目中弄清楚乘客的下船和登船方法。 問題是乘客的數量不會按順序排列,我無法弄清楚哪些航班正在進行那些下機和登機操作。 目的:想辦法為旅客添加航班號。 下面是我的乘客艙 飛機等級,如果有任何顧慮 ...

Mule Distributed Locking for Dynamic locks 如何在內存中跨多個 worker 管理和釋放

[英]How Mule Distributed Locking for Dynamic locks are managed and released in memory across multiple workers

我正在創建鎖,但鎖的名稱是動態的。 給定的 businessCaseId 可能有許多消息,因此將創建許多鎖。 我可以知道lock.unlock()之后鎖定對象會發生什么嗎? (是的,鎖被釋放了)它是從內存中刪除/有資格進行 GC 還是留在內存中還是什么? 我應該設置為 null 嗎? loc ...

Java 並發死鎖

[英]Java concurrent deadlock

運行Main.main()方法似乎發生了死鎖。 我發現如果將notify()替換為notifyAll()可以修復它。 但為什么? 最壞的情況不應該總是被稱為另一個惰性線程的惰性線程嗎? 控制台 output ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM