簡體   English   中英

nio和協程在Java中是什么關系?

[英]What's the relationship between nio and coroutine in java?

我的理解是,在Java中,協程基於nio。 所以我可以說Java支持協程。 我可以使用選擇器/通道自己實現協程應用程序。 我對嗎?

您可以讓1個線程處理N個連接,但是這沒有實現協程。 這只是雜耍。

充其量,代碼將是異步感知的,在之前/之后的階段中進行自我拆分,並異步啟動讀取/寫入。 它必須連接某種形式的回調處理程序,計划任務,反應流等,或可選輪詢循環的各個階段才能恢復處理,但顯然不是在同一行代碼中。

在Java中(沒有主要的jvm / bytecode hacks),線程無法離開並透明地返回到方法的阻塞/屈服點以執行其他操作。

(所有這些都假設您打算保存線程,而不是通過進一步阻塞等待/通知來將它們浪費在某種形式的協程仿真中。很明顯,您可以將調用線程駐留在異步任務最終通知它之前;這並不能贏得任何性能。 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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