java中阻塞和非阻塞的区别


阻塞和非阻塞指的是调用者在等待返回结果时的状态。阻塞时,在调用结果返回前,当前线程会被挂起,并在得到结果之后返回。非阻塞时,如果不能立刻得到结果,则该调用者不会阻塞当前线程。因此对应非阻塞的情况,调用者需要定时轮询查看处理状态。同步和异步指具体的通信机制。同步时调用者等待返回结果。异步时,被调用者通过回调等形式通知调用者。

同步多数情况下意味着阻塞,但是也可能非阻塞,比如轮询。异步多数情况下意味着非阻塞,但也可能阻塞,比如向线程池提交任务,使用Future.get(),假如任务未完成,阻塞获取结果。

阻塞和非阻塞只是同步和异步的一种属性。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM