线程安全与可重入函数

本文探讨了线程安全的概念,解释了如何在多线程环境中避免数据不一致性和冲突。线程安全意味着函数在并发访问时能保持正确性。接着介绍了可重入函数,它们仅访问局部变量,不会导致数据错乱。可重入函数是线程安全的,但线程安全函数不一定是可重入的。文章列举了一些可重入和非线程安全的函数示例。
摘要由CSDN通过智能技术生成

一,什么是线程安全?

1,线程安全就是说多线程访问同一代码,不会产生不确定的结果。换句话说,线程安全就是多线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,用锁对数据进行保护,其他线程不能访问该数据直到该线程读取完,其他线程才可使用,线程安全不会出现数据不一致或者数据污染。反之, 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。

2,举个例子:
比如说,现在有一篮子苹果,有大有小,然后有一群人要来拿苹果了
在线程非安全情况下:
所有人一哄而上,变成了抢苹果了,因为大家都想要大的苹果,会发生冲突的。
在线程安全情况下:
把这一篮子苹果放到一个小屋里面,然后锁起来,然后每次只让一个人进去拿,等那个人拿完然后再让下一个人进去拿,这样保证了每个人都能拿到苹果,而且不会出现冲突。

3,有这么四类函数称为线程不安全的:
1>不保护共享变量的函数;
2>函数状态随着调用改变的函数;
3>返回指向静态变量指针的函数;
4>调用线程不安全函数的函数;

二,什么是可重入函数?

1,先看一个例子:

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值