程序,进程,线程
什么是程序?
程序是一段由操作系统运行的代码
什么是进程?
进程是程序运行的过程,或者说正在被执行的一道程序,一个进程由一个或者多个线程组成
什么是线程?
线程是进程的执行部分,每个线程都有各自的堆栈空间,堆栈是私有的,而线程共享进程内的其他资源
多线程
什么是并发和并行
并发:如果只有单个cpu的话,程序为了能实现同时运行多个任务,由CPU分配时间片执行线程任务,线程任务分成了很多个细小的执行片段,在执行下一个线程片段前,把当前任务状态暂存,然后进行任务切换,知道执行结束。只是因为CPU的高效运算,将时间片压缩到很小,用户是无法察觉任务的切换的。
并行:多个CPU核心同时处理线程任务,真正实现同时运行。
多核心下的多线程
多线程指同一程序运行多个线程,一个CPU有可能有多个核心,每个核心在线程间共享时间片,在给定时间片内执行每个线程之间的切换,每个线程可以由不同的核心执行。单个核心实现并发,多个核心实现并行,这样交替运行。