多线程简单知道

来源:互联网 发布:怎样注销阿里云账号 编辑:程序博客网 时间:2024/06/05 05:04

线程是进程的一个分支实体,是一个代码序列,每个程序都至少包含一个线程,线程共享进程的地址空间和数据,为
CPU调度和分派的基本单位,进程只是作为系统分配资源的基本单位。

线程分为用户级线程和内核级线程,用户级线程就是我们一般使用的线程库编写的程序,无须内核参与,速度更快,不过并行性很差
内核级线程有操作系统内核参与,并行性高,不过创建和管理的代价高!

线程分为可连接和不可连接,缺省状态下线程是可连接,不可连接的线程终止时,将释放所有所有的资源,并且无法等待
它的终止,可连接线程终止时资源释放需要等到有另外一个线程终止时才释放!如果线程之前需要知道何时终止,最好用可
连接。

线程终止情况:
(1)调用系统函数显式终止
(2)线程开始执行时调用的功能函数返回值就是线程的终止状态
(3)进程主函数或者任何一个线程调用exit时,进程及其所有的线程终止

线程同步方法:
  (1)互斥锁
  (2)条件变量
  (3)信号量
  (4)事件
  (5)临界区
多线程安全
 
 (1)准确把握在POSIX 标准的函数中,那些函数是非线程安全的,哪些是安全的,不安全的一定不要使用

 (2)要让自己编写的函数符合线程安全,
    何为线程安全函数,就是一个函数可以被多个线程调用,不会发生问题。尽量不要调用局部静态变量和全局静态变量,
    也不要调用不安全的系统函数,如果非得调用,记得限制个数和加锁.

(3)在访问共享资源/或者变量之前一定要先锁定

(4)注意函数同步

原创粉丝点击