【自我笔记之Linux】线程同步&安全、多线程环境

一、线程同步::线程之间协同工作,用于多线程访问临界资源时,必须按照一定的先后顺序访问执行

1、线程级的信号量

 

原子操作底层实现:

在操作之前将中断屏蔽

操作之后回复中断

 

进程间同步的信号量 是系统V信号量

线程间同步的信号量 POSIX 两个信号量不可以交换用

 

2、互斥锁(读写锁、自旋锁)

 

 

3、条件变量

 

二、线程安全

线程安全:相同的条件,同一份程序,多次执行结果不同,执行结果有二义性  ----  》导致不安全

安全的原因:

1、线程是并发执行的或是并行的

2、操作是非互斥的  ----   在并行系统上

3、操作系统的对象是同一个  线程之间数据共享

可重入函数:保证线程安全的函数  ----  >   strtok

 

三、多线程环境

多线程环境

  • 多线程环境下创建进程  由一个线程调用fork函数创建子进程,在子进程中,只有调用fork的线程会被启动,其他线程不会别执行
  • 多线程环境下对锁进行加锁,然后创建进程,则子进程中对锁加锁可能会出死锁

  • 保证子进程复制父进程的锁是解锁状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值