1.多任务编程
意义: 充分利用计算机的资源提高程序的运行效率
定义: 通过应用程序利用计算机多个核心,达到同时执行多个任务的目的
实施方案: 多进程 多线程
多进程
优点 : 能并行执行多个任务,提高效率
创建方便,运行独立,不受其他进程影响
数据安全
缺点 : 进程的创建和删除都需要消耗计算机的资源
并行: 多个计算机核心在同时处理多个任务,多个任务之间是并行关系
并发: 计算机同时处理多个任务,内核在多个任务间不断切换,达到好像在同时处理的运行效果。
多线程:
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的
进程池技术
产生原因 : 如果有大量任务需要多进程完成,且可能需要频繁的创建和删除进程,给计算机带来大量的资源消耗。
原理 : 在进程池内运行一定数量进程,通过这些进程完成进程池队列中的事件,直到事件执行完毕,减少进程不断的创建删除过程。
2.线程与进程
1.概念
线程:是程序执行流的最小单元,是系统独立调度和分配CPU(独立运行)的基本单位。
进程:是资源分配的基本单位。一个进程包括多个线程。
2.区别:
1.线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。
2.每个进程都有自己一套独立的资源(数据),供其内的所有线程共享。
3.不论是大小,开销线程要更“轻量级”
4.一个进程内的线程通信比进程之间的通信更快速,有效。(因为共享变量)
3.多线程与多进程
多线程:同一时刻执行多个线程。用浏览器一边下载,一边听歌,一边看视频,一边看网页。。。
多进程:同时执行多个程序。如,同事运行YY,QQ,以及各种浏览器。
4.并发与并行
并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。
并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
5.同步互斥机制
目的 : 解决对共有资源操作产生的争夺
临界资源 : 多个进程或者线程都能够操作的资源
临界区 : 操作临界资源的代码段
同步 : 是一种合作关系,为完成某个任务,多进程或者多线程之间形成一种协调。按照约定依次执行对临界资源的操作,相互告知相互促进。
互斥 : 互斥是一种制约关系,当一个进程占有临界资源就会进行加锁的操作,此时其他进程就无法操作该临界资源。知道使用的进程进行解锁操作后才能使用。