课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
安全性在软件开发领域也是需要程序员重点关注的一个问题,而今天我们就通过案例分析来了解一下,线程安全与线程不安全的原因与解决方法。
一、线程安全
指多个线程在执行同一段代码的时候采用加锁机制,使每次的执行结果和单线程执行的结果都是一样的,而且其他的变量的值也和预期的是一样的,不存在执行程序时出现意外结果。(保证数据的一致性)
二、线程不安全
就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。
1、引起线程安全问题的原因:
线程安全问题都是由全局变量及静态变量引起的。
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。
2、解决多线程并发访问资源安全问题的方法,实现线程同步的方法:
信号量
互斥锁
读写锁
条件变量
同步的前提:
1,必须要有两个或者两个以上的线程
2,必须是多个线程使用同一个锁
必须保证同步中只能有一个线程在运行
好处:解决了多线程的安全问题
弊端:多个线程需要判断锁,较为消耗资源、抢锁的资源。
注意:在单线程环境下,没有“线程安全”和“非线程安全”的概念。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。