多线程安全

多线程安全

函数的多线程安全性是指,一个函数在被调用过程中,还未返回时,又再次被其他线程调用的情况下,函数的执行结果的可靠性。如果结果是可靠的,则称这个函数是多线程安全的;反之,则这个函数是非多线程安全的,原因是多线程冲突

  1. 可能运行于多线程环境的函数,必须是多线程安全的。

    这是因为存在多线程同时调用该函数的可能,必须保证函数的可靠性。

    判断是否是多线程环境规则:

    • 如果函数A的所有调用源只运行于同一单线程环境,则函数A也是只运行在单线程环境的。

    • 如果函数A的其中一个调用源是可能运行在多线程环境的,或者多个调用源可能运行于不同的可并发的多个线程环境,而且调用路径上没有才用多线程序列化成单线程的强制措施,则函数A也是可能运行在多线程环境的。

    • 如果函数A所有的可能运行于多线程环境的调用路径上,都有多线程序列化成单线程的强制措施,则函数A是运行在单线程环境的。

      多线程序列化成单线程的强制措施是指如互斥体、自旋锁等同步手段。

  2. 只使用函数内部资源,完全不使用全局变量、静态变量或者其他全局性资源的函数是多线程安全的。

  3. 如果对某个全局变量或者静态变量的所有访问都被强制的同步手段限制为同一时刻只有一个线程访问,即使使用了这些变量,对函数的多线程安全性也是没有影响的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值