场景:main方法开启工作线程A 执行阻塞式read()操作,A进入阻塞状态直到read()方法返回
疑问:
- 阻塞期间A无法获得cpu时间片,read()操作怎么执行的?
- 为何io操作会使线程阻塞? 我在A线城执行其他耗时操作(比如复杂的数学计算),为何A会一直运行
场景:main方法开启工作线程A 执行阻塞式read()操作,A进入阻塞状态直到read()方法返回
疑问:
4 回答1.3k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答894 阅读✓ 已解决
2 回答995 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
2 回答724 阅读✓ 已解决
看这个就能知道, 阻塞IO在阻塞时候的操作不是在用户线程执行, 而是操作系统来完成(这个时候Java的线程只能等待), 等操作系统那边准备好数据以后用户线程才继续.