多线程之概念
要想能够在项目中熟练的使用线程,首先就要明白有关线程的一些概念,下面来说一些计算机操作系统都有的一些概念。
- 进程:一般的应用程序都是单个进程,也有多jin进程(谷歌浏览器),进程是个静态的容器,里面容纳了很多个线程。每个进程之间是独立的,均运行在其专用且受保护的内存空间内。计算机中的资源分配给进程,同一进程中的线程共享该进程的所有资源。
- 线程:线程是一系列方法的线性执行路径,它是操作系统可识别的最小执行和调度单位,是进程中的一个实体。
- 同步:多个线程同时访问同一资源,按先后顺序依次执行,等待资源访问结束,不开启新线程。串行执行任务,浪费时间,效率低。
- 异步: 可以在当前线程开启多个新线程执行,可不按顺序执行。实现多线程机制,并行执行任务。
- 队列:装载线程任务的队形结构。
- 并发: 线程执行可以同时一起进行执行。
- 串行:线程执行只能依次逐一先后有序的执行。
注意:
一个进程可有多个线程。
一个进程可有多个队列。
队列可分并发队列和串行队列。
多线程的优点
能适当提高程序的执行效率
能适当提高资源利用率(CPU、内存利用率)
多线程的缺点
开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能
线程越多,CPU在调度线程上的开销就越大
程序设计更加复杂:比如线程之间的通信、多线程的数据共享