是因为两个操作系统的多处理机制不同。
在Mac上,多处理是通过抢占式调度实现的。抢占式调度是指操作系统会根据进程的优先级和时间片来决定哪个进程可以执行。当一个进程的时间片用完或者发生了某些事件(如等待I/O操作完成)时,操作系统会暂停该进程的执行,将CPU资源分配给其他进程。因此,当一个进程在Mac上完成时,它会被挂起,让其他进程有机会执行。
而在Windows上,多处理是通过协同式调度实现的。协同式调度是指进程自愿地释放CPU资源,让其他进程执行。在Windows中,一个进程可以一直执行,直到主动调用某些函数(如Sleep()函数)或者发生了某些事件(如等待I/O操作完成)。因此,当一个进程在Windows上完成时,它不会被挂起,而是继续执行直到主动释放CPU资源。
这种差异导致了在Mac上完成多处理任务时会挂起,而在Windows上不会挂起。这也意味着在Mac上,多处理任务可能会更加公平地分配CPU资源,但也可能导致一些长时间运行的任务被中断。而在Windows上,长时间运行的任务可能会占用CPU资源,导致其他任务无法及时执行。
总结起来,多处理在Mac上完成时挂起,但在Windows上不挂起是由于两个操作系统的多处理机制不同所致。
领取专属 10元无门槛券
手把手带您无忧上云