用Java 19實現類似Go併發 - mccue
執行緒通常很昂貴:
作業系統沒有辦法準確知道一個執行緒需要多少堆疊空間,所以它分配的數量大約是一兆位元組。
解決這個問題的方法是實現一種機制,即利用有限數量的作業系統執行緒,並在其之上處理大量的 "邏輯執行緒"。
對於大多數語言來說,這意味著新增某種形式的async/await語法:
你在程式碼裡放一個await,語言就知道它可以切換到處理另一個任務。
你只能在標記為async的程式碼中放置await。
這會帶來其他問題。
Go程式語言與大多數語言不同,它是以 "非合作 "的方式實現這種雜耍的。
你不用明確地用async和await標記你的程式碼,執行時為你自動切分。
他們把這些廉價的執行緒稱為 "goroutines"。
Java虛擬機器將獲得一個類似的功能,叫做 "虛擬執行緒"。
這不僅僅有利於Java,還有利於JVM上的每一種語言,包括Clojure、Groovy、Kotlin和Scala。
虛擬執行緒預計將於2022年9月20日作為 "預覽 "功能出現在Java 19中。這意味著底層功能的實現已經完成並經過了測試,但公共API會有一些突破性的變化,必須明確選擇進入。
Go中許多圍繞併發性的模式都來自於你可以隨意建立執行緒的設想。
由於Java即將加入這個俱樂部,現在似乎是一個很好的時機,可以透過Go的一些併發性例子,看看它們翻譯過來會是什麼樣子。
如果你想跟著學,你可以在這裡here得到一個早期訪問構建。解壓縮檔案並將bin/目錄新增到你的路徑中。
詳細點選標題
相關文章
- 用go實現併發聊天室Go
- 01 . Go之從零實現Web框架(類似Gin)GoWeb框架
- Java併發指南9:AQS共享模式與併發工具類的實現JavaAQS模式
- LiveKit:使用Go與WebRTC實現類似Zoom高影片質量GoWebOOM
- 在Go中如何實現併發Go
- H5開發類似rpx實現方法H5
- 用 golang 去實現類似 swoole 的 websocket 服務 ?GolangWeb
- PostgreSQL類似OracleMERGE功能的實現SQLOracle
- 採用 SwiftNIO 實現一個類似 Express 的 Web 框架SwiftExpressWeb框架
- 用 hyperf websocket 實現,類似 qq 單機登入功能Web
- go實現類似與spring的全域性上下文獲取getPrincipal()GoSpring
- java併發之SynchronousQueue實現原理Java
- go 實現歸併排序Go排序
- GetX 實現類似微信轉發搜尋多選好友
- Go - 使用 sync.WaitGroup 來實現併發操作GoAI
- Go語言一個輕便的實時日誌類似slack收集應用Go
- 等不及 go 泛型釋出,我先實現了(類似 C++ 的 template)Go泛型C++
- flutter實現類似優惠券樣式Flutter
- Flutter 實現類似TabPicker省市區選擇Flutter
- Java併發系列—工具類:SemaphoreJava
- 畫江湖之 Go 學習篇 [go 實現類似 java 的 set] 某個大佬問的問題 自身也補充下基礎GoJava
- java多執行緒與併發 - 併發工具類Java執行緒
- 不到200行用Vue實現類似Swiper.js的輪播元件VueJS元件
- 使用KubernetesIngress來實現類似Istio條件路由路由
- MySQL 06 mysql 如何實現類似 oracle 的 merge intoMySqlOracle
- 在鴻蒙中實現類似瀑布流效果鴻蒙
- 《java併發程式設計的藝術》併發工具類Java程式設計
- 《java併發程式設計的藝術》併發底層實現原理Java程式設計
- Java 併發包原子操作類解析Java
- Go巢狀併發實現EDM,附坑點分析#1Go巢狀
- 用PHP實現高併發伺服器PHP伺服器
- 用多執行緒,實現併發,TCP執行緒TCP
- PHP下用Swoole實現Actor併發模型PHP模型
- 如何實現類似 lodash 的 get 與 merge 函式函式
- 教你如何用SQLite 實現if not exist 類似功能的操作SQLite
- 用RecyclerView實現類似支付寶應用圖示拖拽排序以及增刪管理的功能View排序
- Java ConcurrentHashMap 高併發安全實現原理解析JavaHashMap
- 凹音短影片軟體開發(類似現成)