关于多线程并发环境下,数据的安全问题
1.为什么这个是重点?
以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了。这些代码我们都不需要编写
最重要的是:
你要知道,你编写的程序需要放到一个多线程的环境下运行,你更需要关注的是这些数据在多线程并发的环境下是否是安全的
2.什么时候数据在多线程并发的环境下会存在安全问题呢?
三个条件:
条件一:多线程并发
条件二:有共享数据
条件三:共享数据有修改的行为
满足以上3个条件以后,就会存在线程安全问题
3。怎么解决线程安全问题呢?
当多线程并发的环境下,有共享数据,并且这个数据还会被修改,此时就会存在线程安全问题,怎么解决这个问题呢?
线程排队执行(不能并发)
用排队执行解决线程安全问题。
这种机制被称为:线程同步机制
专业术语叫做:线程同步,实际上就是线程不能并发了,线程必须排队执行。
问:怎么解决线程安全问题呀?
使用”线程同步机制“
线程同步就是线程排队,线程排队就会牺牲一部分效率,没办法,数据安全第一位,只有数据安全了才可以谈效率
4.说到线程同步这块,涉及到这两个专业术语: