一、线程定义
定义:在一个程序里有多个执行线路,或者“线程是一个进程内部的控制序列”。
二、进程和线程区别
(1)、当一个进程执行fork调用时,会创建出进程的新拷贝,新进程将拥有它自己的变量和它自己的进程ID。该新进程是独立于创建它的进程。
(2)、在进程里面创建一个新线程的时候,新的执行线程会拥有自己的堆栈,但要与它创建的进程共享全局变量、文件描述符、信号量等。
三、线程优点和缺点
优点:
(1)、创建一个线程的代价要比创建一个进程的代价小。
(2)、与进程间的切换相比,线程之间的切换需要操作系统做的工作要比进程少。
(3)、线程占用的资源要比进程少。
缺点:
(1)、线程的调试难度比较大
(2)、线程会因时间的偏差或者共享了不该共享的变量,造成不良性影响比较大。
四、线程同步的方式
方式:信号量和互斥量