1
我正在瀏覽twitter,它是一個在scala中的異步服務框架,我對通用異步庫有一些疑問。異步庫的優點
所以據我所知,使用回調的同步庫的優點是應用程序線程變得空閒,並且只要通過網絡完成請求,庫就會調用回調。一般來說,應用程序線程可能沒有與庫線程的1:1映射。
- 庫中的服務調用線程阻塞了嗎?
- 如果是這樣的話,我們只是在其他線程中進行阻塞調用。這使應用程序線程可用,但其他一些線程正在完成相同的工作。我們不能只增加應用程序線程的數量來獲得這種優勢嗎?
有可能我誤解了異步庫是如何在Java/Scala或JVM中實現的。任何人都可以幫助我理解這是如何工作的?
阻塞/非阻塞IO!=異步。 – vptheron 2014-10-09 19:25:50
因此,I/O操作仍然阻塞圖書館線程的權利? – Piyush 2014-10-09 20:01:39
嗯,是的(因爲數據包通過網絡時該線程還能做些什麼?)好消息是,使用Java NIO(選擇器),該線程可以被阻塞,以等待來自一組IO請求的_some_ IO操作完成。因此,單個JVM線程將處理多個IO請求。 – 2014-10-09 20:10:53