我有简单但不容易的问题
任何计算机(多核或单核)是否可以同时运行多个线程,同时,我的意思是两个或多个线程在执行的同时运行?
答案 0 :(得分:3)
同时运行多个线程的能力是生成多核处理器的原因。由于各种原因,提高单核CPU的效率变得越来越困难。同时,可以执行与您拥有的核心/处理器数量一样多的线程。如果您有多个多核处理器,则并行运行的最大线程数将为num_cpus * cores_per_cpu。如果线程数超过可用内核数,它们将以隔行扫描方式执行。
答案 1 :(得分:2)
单核 - 否
多核 - 是的。
详细信息:Threads & Processes Vs MultiThreading & Multi-Core/MultiProcessor : How they are mapped?
答案 2 :(得分:2)
您可以在您的环境中创建多个线程,并让单个CPU核心执行这些线程。但是,它们的执行不是并行的,而只是并发的。换句话说,CPU将首先执行一个线程(部分或完全),然后执行另一个线程。如果第一个线程上还有工作,那么它可能会再次返回第一个线程并执行更多指令。因此,线程正在进行并发。如果线程在多个CPU核心上执行,那么它们可以同时执行 ,这意味着它们在 parallel 中执行。
总之,单个CPU核心上的多个线程可以同时执行。多个CPU内核上的多个线程可以同时或并行执行。
另见答案:Can multithreading be implemented on a single processor system?
答案 3 :(得分:0)
......与此同时,同一时间,我的意思是......在执行的同时......
听起来你正在努力寻找一种正式的方式来提问你。
单词"同时"通常不会出现在有关并发的正式讨论中。
当您谈论时间时,事件是不可分割的时刻,然后有间隔。每个间隔都由其开始事件及其结束事件定义。
每当你试图证明某个系统的行为,并且你的证据围绕事件,A和B然后;
这是唯一的可能性。如果您的证明失败,那么您将无法通过说" A和B同时发生来拯救它。"
当你的证据围绕两个区间时,我和J,然后是;
"重叠"是正式讨论中的首选词。所以,...
...在单处理器系统上执行两个或多个线程重叠,但在任何给定的时刻,单个CPU将仅代表其中一个线程工作线程。
答案 4 :(得分:0)
您必须首先了解自己的 CPU 能力。
使用这些来了解您的 CPU 可以处理多少进程。
1. lscpu
2. cat /proc/sys/kernel/threads-max
3. cat /proc/sys/kernel/pid_max
4. htop
5. top
6. cat /proc/cpuinfo
7. ulimit -a
8. ps -aeF