Discuss / Java / 关于线程状态及cpu在线程间切换的一些疑问

关于线程状态及cpu在线程间切换的一些疑问

Topic source

大风起兮

#1 Created at ... [Delete] [Delete and Lock User]

> 对于需要处理大量IO请求的任务来说,使用线程是低效的,因为一旦读写IO,线程就必须进入等待状态,直到IO数据返回

这里说的线程进入等待 好像 和Java中线程的状态 并不是一个概念,IO的时候,Java获取到的线程是RUNNABLE。(我已经查过和测试过了)

我能读懂想要表达什么,应该是说,在IO过程中cpu占用率很低。

但是有一点不理解就是Java中的线程运行中的四个状态,与线程对cpu的占用是否有直接关系呢?

WAITING 和 BLOCKED 是不占用cpu的(不会参与cpu的切换),那么IO时,线程是 RUNNABLE,是不是表示这个线程仍然会参与cpu的切换,只是占用cpu很少呢

大风起兮

#2 Created at ... [Delete] [Delete and Lock User]

当然,我对课程原文的理解是,如果IO让线程阻塞,那么线程池中的线程有可能全部占用,就会影响吞吐量,应该是这个意思吧


  • 1

Reply