JEP 428:針對JDK 19提出的結構化併發
Java開發人員透過將任務分解為多個子任務來管理複雜性。在普通的單執行緒程式碼中,子任務按順序執行。但是,如果子任務彼此足夠獨立,並且有足夠的硬體資源,則可以透過併發執行子任務來使任務執行得更快(延遲更低) 。例如,如果每個 I/O 操作都在自己的執行緒中執行,則由多個 I/O 操作的結果組成的任務將執行得更快。
虛擬執行緒的可用性使得將執行緒專用於每個 I/O 操作具有成本效益。
透過引入結構化併發庫來簡化多執行緒程式設計。結構化併發將在不同執行緒中執行的多個任務視為單個工作單元,從而簡化錯誤處理和取消,提高可靠性並增強可觀察性。
目標
- 提高多執行緒程式碼的可靠性和可觀察性。
- 提倡一種併發程式設計風格,可以消除取消和關閉帶來的常見風險,例如執行緒洩漏和取消延遲。
結構化併發是一種多執行緒程式設計方法,它保留了單執行緒程式碼開發人員所享有的可讀性和可維護性。它的原理是,如果一個任務拆分成併發的子任務,它們都返回到同一個地方:任務的程式碼塊。
Response handle() throws ExecutionException, InterruptedException { try (var scope = new StructuredTaskScope.ShutdownOnFailure()) { Future<String> user = scope.fork(() -> findUser()); Future<Integer> order = scope.fork(() -> fetchOrder()); scope.join(); // Join both forks scope.throwIfFailed(); // ... and propagate errors // Here, both forks have succeeded, so compose their results return new Response(user.resultNow(), order.resultNow()); } } |
在所有條件下,生命週期都被限制在一個詞法範圍內:try-with-resources 的主體。
相關文章
- Java中結構化併發Java
- 針對web高併發量的處理Web
- Flowmatic:Go語言中結構化併發庫Go
- 通俗易懂,JDK 併發容器總結JDK
- JEP 419:JDK18將無需JNI呼叫JVM外部程式和資料JDKJVM
- 從JDK原始碼角度看併發鎖的優化JDK原始碼優化
- JDK併發AQS系列(二)JDKAQS
- JDK併發AQS系列(一)JDKAQS
- JDK併發AQS系列(三)JDKAQS
- JDK併發AQS系列(五)JDKAQS
- java併發包學習系列:jdk併發容器JavaJDK
- 俄羅斯政府針對加密貨幣草案提出修改意見加密
- 針對使用非塊執行和塊執行併發壓測對比
- 針對行動網路開發的優化建議優化
- 高併發,大資料量系統的資料結構優化思路大資料資料結構優化
- Golang 針對 MySQL 資料庫表結構的差異 SQL 工具GolangMySql資料庫
- Java併發——ConcurrentHashMap(JDK 1.8)JavaHashMapJDK
- grequests 執行併發測試與 jmeter 併發結果對比JMeter
- MySQL 針對 like 條件的優化MySql優化
- java併發資料結構之CopyOnWriteArrayListJava資料結構
- 異常-JDK7針對多個異常的處理方案JDK
- 3.1 JDK併發包之同步控制JDK
- JDK8 併發包一覽JDK
- 微服務 - Redis快取 · 資料結構 · 持久化 · 分散式 · 高併發微服務Redis快取資料結構持久化分散式
- 『夢話高併發』J.U.C@併發包整體結構
- 針對enq: KO - fast object checkpoint的優化ENQASTObject優化
- 針對SQL Server的最佳化建議SQLServer
- JAVAEE專案結構以及併發隨想Java
- java八股 併發+資料結構Java資料結構
- 針對不同場景的Python合併多個Excel方法PythonExcel
- JEP 421: Java將要終結finalize()了!Java
- c++11併發程式設計歷程(15):併發設計以及併發設計資料結構的思考C++程式設計資料結構
- 併發應用中不可變資料結構資料結構
- 針對客戶細分的RFM模型如何構建?模型
- 結構化與非結構化
- 阿里巴巴論文提出針對影視作品的語音情感識別資訊融合框架阿里框架
- 併發程式設計之synchronized(二)------jvm對synchronized的優化程式設計synchronizedJVM優化
- Random在高併發下的缺陷以及JUC對其的優化random優化