Multiprocessing 所需的多核编程技巧和技术

Multiprocessing 所需的多核编程技巧和技术,multiprocessing,mutex,semaphore,multicore,Multiprocessing,Mutex,Semaphore,Multicore,1) 在编程方面,多进程和多核有什么区别 2) 对于多线程,我们需要通过互斥和同步来保存共享数据,那么运行在多核上的程序呢 3) 如果我的程序中只有一个进程并在多核环境下运行它?处理速度是否会更快 1)我假设多进程是指将一个程序拆分为多个进程(通常在POSIX系统中使用fork()方法),而不是多任务。多处理或多任务处理的通常定义是允许一个CPU通过经常在多个进程之间切换来并行运行多个进程。多核意味着单个CPU可以有多个能够执行任务的核心,并且所有执行单元都以某种方式连接(取决于处理器的体系结构

1) 在编程方面,多进程和多核有什么区别

2) 对于多线程,我们需要通过互斥和同步来保存共享数据,那么运行在多核上的程序呢

3) 如果我的程序中只有一个进程并在多核环境下运行它?处理速度是否会更快

1)我假设多进程是指将一个程序拆分为多个进程(通常在POSIX系统中使用
fork()
方法),而不是多任务。多处理或多任务处理的通常定义是允许一个CPU通过经常在多个进程之间切换来并行运行多个进程。多核意味着单个CPU可以有多个能够执行任务的核心,并且所有执行单元都以某种方式连接(取决于处理器的体系结构)。这些东西通常不会影响您的编程方式,除非您正在编写非常低级的软件,例如操作系统。分叉过程(我相信你的意思是)通常是通过操作系统提供的一些方法来完成的,实际上这是一个巨大的主题,你可以找到很多关于它的书籍

2) 操作系统通常提供对底层CPU架构的抽象,这意味着作为编程人员,您不必关心您的PC是否有多核CPU或单核,因此如果您使用多线程,您仍然必须以相同的方式共享数据。如果您正在为多核CPU编写操作系统,那么事情将变得更加困难,您将不得不阅读CPU支持的指令

3) 如果您的程序只有一个进程(并且没有产生线程),那么无论它是在单核系统还是多核系统上运行,执行都将(几乎)相同。它在多核系统上所能获得的唯一速度优势可能是操作系统将其推到一个没有很多其他任务运行的内核上,从而使其拥有更多的CPU时间和更少的任务切换。使用多核系统的真正好处只能通过使用并行编程来实现