【问题标题】:What is the difference between the thread in CPU (hardware) and those in thread poolCPU(硬件)中的线程和线程池中的线程有什么区别
【发布时间】:2018-06-08 06:06:47
【问题描述】:

人们总是说CPU有4核8线程或2核2线程等。

但是在线程池中,产生了相当多的小线程,这些与硬件有关吗threads?

我在想如果 CPU 线程实际上是 processes。

另外,我认为实际的线程只是一个运行while循环并执行可用任务的代码块,否则睡眠,这个说法正确吗?

【问题讨论】:

  • 问题不够具体,缺少语言和操作系统标签。但总的来说没有区别,线程池线程只是有点不同,因为它永远不会退出。线程池管理器使用生产者/消费者算法来让这些线程执行工作。是的,在 tp 线程上有一个 while 循环。没有睡眠,线程只是等待工作,通常是一个监视器。

标签: multithreading cpu threadpool


【解决方案1】:

在硬件方面,CPU 有内核,内核有 1-8 个可调度线程,新的 Power-CPU 最多有 8 个线程,Knightbridge(?) 有 4 个,大多数其他桌面 CPU 有 2 个,更旧和/或更小的 CPU得到 1 个。

在软件方面,一个程序可以有多个进程(不同的虚拟内存映射),一个进程可以有多个软件线程(共享进程内存映射),一个软件线程是硬件线程的调度伙伴。

然后你又可以在软件中拥有一个逻辑线程,通常称为纤程,它是由软件线程运行的用户软件调度的微型线程。

【讨论】:

  • 硬件线程和软件端进程是什么关系?
  • @TonyLin,不直接,进程中的线程必须有硬件线程才能运行。
猜你喜欢
  • 2011-09-29
  • 2019-12-29
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 2021-05-23
相关资源
最近更新 更多