目录
一、什么是多线程?
1、程序:
是含有命令和数据的文件,被存在磁盘或其他数据存储设备中,也就是说程序是静态的代码;
2、进程:
是程序的一次执行过程,是程序运行的基本单位,因此进程是动态的。系统运行一个程序既是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,他在计算机中一个指令接着一个指令的执行着,同时,每一个进程还占有某些系统资源如 CPU 时间,内存空间,文件,输入输出设备的使用权限等等。
3、线程:
与进程类似,但线程是一个比进程还小的执行单位,一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程只能共享同一块内存空间和一组系统资源,所以系统在产生一个线程或是在多个线程中切换工作时,负担要比进程小很多,正因如此,线程也被称之为 “ 轻量级进程 ” 。
换句话说,当程序在执行时,将会被操作系统载入内存中,线程是进程划分成更小的运行单位。线程和进程最大的不同在于基本上各个进程是独立的,而线程则不一定,因为同一个进程中的线程有一定几率会互相影响。从另一个角度来说,进程是属于操作系统的的范畴,主要是同一时间段内,可以同时执行一个以上的程序,而线程则是在同一程序内几乎同时执行一个以上的程序段。
4、多线程:
多线程就是在同一进程里面,同时有多个执行不同任务的线程。单线程一次只能执行一个任务,执行完当前任务才能执行下一个任务。多线程可以让多个任务同时执行。
5、多线程的三大特性:
原子性:保证数据一致性线程安全。
可见性:一个线程对另一个线程是否可见。
有序性:线程之间执行是否有顺序。