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
- 通俗易懂,JDK 併發容器總結JDK
- Flowmatic:Go語言中結構化併發庫Go
- Golang 針對 MySQL 資料庫表結構的差異 SQL 工具GolangMySql資料庫
- JDK併發AQS系列(三)JDKAQS
- JDK併發AQS系列(五)JDKAQS
- Java併發——ConcurrentHashMap(JDK 1.8)JavaHashMapJDK
- JDK併發AQS系列(二)JDKAQS
- JDK併發AQS系列(一)JDKAQS
- 針對使用非塊執行和塊執行併發壓測對比
- 高併發,大資料量系統的資料結構優化思路大資料資料結構優化
- JDK 19:Java 19新特性JDKJava
- 俄羅斯政府針對加密貨幣草案提出修改意見加密
- MySQL 針對 like 條件的優化MySql優化
- 異常-JDK7針對多個異常的處理方案JDK
- grequests 執行併發測試與 jmeter 併發結果對比JMeter
- 針對不同場景的Python合併多個Excel方法PythonExcel
- java併發資料結構之CopyOnWriteArrayListJava資料結構
- JEP 421: Java將要終結finalize()了!Java
- 針對SQL Server的最佳化建議SQLServer
- 3.1 JDK併發包之同步控制JDK
- 微服務 - Redis快取 · 資料結構 · 持久化 · 分散式 · 高併發微服務Redis快取資料結構持久化分散式
- java八股 併發+資料結構Java資料結構
- JAVAEE專案結構以及併發隨想Java
- JEP 419:JDK18將無需JNI呼叫JVM外部程式和資料JDKJVM
- c++11併發程式設計歷程(15):併發設計以及併發設計資料結構的思考C++程式設計資料結構
- 針對客戶細分的RFM模型如何構建?模型
- JDK 19:Java 19五個新功能 - infoworldJDKJava
- 結構化與非結構化
- 針對ShotGun的ServerRewindOTGServer
- 1455G Forbidden Value(資料結構優化dp+啟發式合併)ORB資料結構優化
- 打通 Java 任督二脈 —— 併發資料結構的基石Java資料結構
- Random在高併發下的缺陷以及JUC對其的優化random優化
- 併發程式設計之synchronized(二)------jvm對synchronized的優化程式設計synchronizedJVM優化
- 如何針對SEO優化您的WordPress Robots.txt優化
- 針對ASP.NET Core Web API的先進架構ASP.NETWebAPI架構
- 併發容器之ConcurrentHashMap(JDK 1.8版本)HashMapJDK
- [分散式][高併發]熱點快取的架構優化分散式快取架構優化