擅长:python、mysql、java
<p>问题1:是的</p>
<p>问题2:如果每个线程的处理时间都是5秒,那么总时间应该是20秒。但是每个线程只休眠5秒,因此每个线程释放<code>GIL</code>,从而允许其他线程在等待休眠超时时“并行”运行(仅在概念上)。你知道吗</p>
<p>问题3:与<code>threads</code>不同,多处理创建的子进程可以在不同的处理器上同时运行(实际上是并行的)。但即使这些<code>sleeps</code>分别在不同的处理器上运行,它们仍将在大约5秒钟内全部完成。如果它们在同一个处理器上运行,操作系统的分时机制(类似于Python的线程机制)也将确保它们在大约5分钟内完成。你知道吗</p>
<p>问题4:这与<code>sleep</code>的概念相同。每个<code>ping</code>都不是CPU密集型的,因此它的线程很少拥有GIL。这允许所有三个<code>ping</code>线程在概念上并行运行。你知道吗</p>