java中阻塞和非阻塞的區別


阻塞和非阻塞指的是調用者在等待返回結果時的狀態。阻塞時,在調用結果返回前,當前線程會被掛起,並在得到結果之后返回。非阻塞時,如果不能立刻得到結果,則該調用者不會阻塞當前線程。因此對應非阻塞的情況,調用者需要定時輪詢查看處理狀態。同步和異步指具體的通信機制。同步時調用者等待返回結果。異步時,被調用者通過回調等形式通知調用者。

同步多數情況下意味着阻塞,但是也可能非阻塞,比如輪詢。異步多數情況下意味着非阻塞,但也可能阻塞,比如向線程池提交任務,使用Future.get(),假如任務未完成,阻塞獲取結果。

阻塞和非阻塞只是同步和異步的一種屬性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM