java中io操作会使线程阻塞,那IO操作怎么完成_Java_编程问答

java中io操作会使线程阻塞,那IO操作怎么完成

来源:互联网  时间:2018/1/29 1:07:03

关于网友提出的“ java中io操作会使线程阻塞,那IO操作怎么完成”问题疑问,本网通过在网上对“ java中io操作会使线程阻塞,那IO操作怎么完成”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: java中io操作会使线程阻塞,那IO操作怎么完成
描述:

场景:main方法开启工作线程A 执行阻塞式read()操作,A进入阻塞状态直到read()方法返回

疑问:

  1. 阻塞期间A无法获得cpu时间片,read()操作怎么执行的?
  2. 为何io操作会使线程阻塞? 我在A线城执行其他耗时操作(比如复杂的数学计算),为何A会一直运行

解决方案1:

看这个就能知道, 阻塞IO在阻塞时候的操作不是在用户线程执行, 而是操作系统来完成(这个时候Java的线程只能等待), 等操作系统那边准备好数据以后用户线程才继续.

上一篇JPA/Hibernate 里 @Column 的属性设置和数据库表中字段的属性设置之间的关系?
下一篇Intellij: java静态代码块打断点不起作用是为何?
明星图片
相关文章
《 java中io操作会使线程阻塞,那IO操作怎么完成》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)