首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

多处理在Mac上完成时挂起,但在Windows上不挂起

是因为两个操作系统的多处理机制不同。

在Mac上,多处理是通过抢占式调度实现的。抢占式调度是指操作系统会根据进程的优先级和时间片来决定哪个进程可以执行。当一个进程的时间片用完或者发生了某些事件(如等待I/O操作完成)时,操作系统会暂停该进程的执行,将CPU资源分配给其他进程。因此,当一个进程在Mac上完成时,它会被挂起,让其他进程有机会执行。

而在Windows上,多处理是通过协同式调度实现的。协同式调度是指进程自愿地释放CPU资源,让其他进程执行。在Windows中,一个进程可以一直执行,直到主动调用某些函数(如Sleep()函数)或者发生了某些事件(如等待I/O操作完成)。因此,当一个进程在Windows上完成时,它不会被挂起,而是继续执行直到主动释放CPU资源。

这种差异导致了在Mac上完成多处理任务时会挂起,而在Windows上不会挂起。这也意味着在Mac上,多处理任务可能会更加公平地分配CPU资源,但也可能导致一些长时间运行的任务被中断。而在Windows上,长时间运行的任务可能会占用CPU资源,导致其他任务无法及时执行。

总结起来,多处理在Mac上完成时挂起,但在Windows上不挂起是由于两个操作系统的多处理机制不同所致。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 并发与并行的区别_并发执行和并行执行

    学习多线程的时候会遇到一个名词:并发。这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解。 一: 并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。 来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。 二: 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。

    01
    领券