永发信息网

在多核CPU下,同一进程下的多个线程可以并行运行吗

答案:3  悬赏:60  手机版
解决时间 2021-04-05 00:57
  • 提问者网友:动次大次蹦擦擦
  • 2021-04-04 13:41
在多核CPU下,同一进程下的多个线程可以并行运行吗
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-04-04 14:52
CPU在某一个时间点上确实只能执行一个线程,但是多线程不是由于多核或者双核才叫多线程。
  是由于,很多个线程在并行执行的时候,CPU根据一定的线程调度算法,频繁的进行线程切换,当正在执行的一个线程需要进行IO操作或者需要访问内存的时候,CPU完全可以放弃该线程,转而调度线程就绪队列上的其他线程,被放弃的线程则进入阻塞状态,IO操作或者访问内存操作结束之后,该线程可以进入线程就绪队列上。
  人们通常意义上的多线程指的是,由于CPU根据一定的线程调度算法来切换线程,所以在一个时间段上,可以看做很多线程在并发执行。
  其实还是在某一个时间点上只有一个线程在运行罢了。
全部回答
  • 1楼网友:醉吻情书
  • 2021-04-04 17:07
引用霸7威武的回答:
  CPU在某一个时间点上确实只能执行一个线程,但是多线程不是由于多核或者双核才叫多线程。
  是由于,很多个线程在并行执行的时候,CPU根据一定的线程调度算法,频繁的进行线程切换,当正在执行的一个线程需要进行IO操作或者需要访问内存的时候,CPU完全可以放弃该线程,转而调度线程就绪队列上的其他线程,被放弃的线程则进入阻塞状态,IO操作或者访问内存操作结束之后,该线程可以进入线程就绪队列上。
  人们通常意义上的多线程指的是,由于CPU根据一定的线程调度算法来切换线程,所以在一个时间段上,可以看做很多线程在并发执行。
  其实还是在某一个时间点上只有一个线程在运行罢了。多核cpu也是多个线程,就一个线程在工作?那多核的用处呢?多核cpu应该是,在线程就绪后(非io,内存等待啥的),可运行线程在核心个数内,就是并行,就是一起运行,超了才会切换。
  • 2楼网友:山有枢
  • 2021-04-04 16:14
绝对可以,要不然为什么叫多核CPU,多核心就是为了同时分配线程需求进行工作,如果只能单一线程运行,要那么多核干嘛?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯