多线程
概念
进程
- 计算机中已运行程序的实体。
- 进程本身不会运行,是线程的容器。
- 程序本身只是指令的集合,进程才是程序(那些指令)的真正运行。
- 若干进程有可能与同一个程序相关系,且每个进程皆可以同步(循序)或不同步(平行)的方式独立运行。
- 进程为现今分时系统的基本运作单位。1
线程
- 操作系统技术中的术语,是操作系统能够进行运算调度的最小单位。
- 它被包涵在进程之中,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
并发运行
- 并发运行实现并发技术相当复杂,最容易理解的是“时间片轮转进程调度算法”,它的思想简单介绍如下:
- 在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。2
并行运行
- 并行是指“并排行走”或“同时实行或实施”。
- 在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。
- 对比地,并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。
多线程和多进程
- 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行
- (轮流获取cpu的时间片,在总体上给人的感觉是同时在执行,这是并发,还有一个名词叫并行,就是多核多cpu,真正的同时在执行,不过现在实现难度有点大,在用处上主要用在并行计算)
- 至少要有一个线程
- 相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
参考
- [2] 百度百科