线程安全是重点
为什么是重点?
以后开发中,我们项目是运行在服务器中,而服务器已经将线程的定义,线程的创建,线程启动等,dd偶已经实现了,我们不需要编写。
我们关注的是在多线程并发的环境下,是否安全的(重点)
多线程并发对同一个账户进行取款
在什么条件下数据在多线程并发的环境下会存在安全问题?
1、多线程并发
2、有共享数据
3、共享数据有修改的行为
满足3个条件就存在线程安全问题
怎么解决线程安全问题?
1、线程排队执行(不能并发)
用排队执行解决线程安全问题。这种机制称为:线程同步机制。
专业术语:线程同步,实际就是线程不能并发了,线程必须排队执行。
怎么解决线程安全问题?
使用:“线程同步机制”
线程同步就是线程排队,线程排队了就会牺牲一部分效率,没办法,数据安全第一位,只有数据安全了,我们才可以谈效率。数据不安全,没有效率的的事儿。
涉及到 ”线程同步“ 我们涉及到2个专业术语:
异步编程模型:
线程t1和线程t2,各自执行各自的,t1不管t2,t2不管t1,谁也不需要等谁,这种编程的模型叫做:异步编程模型。
其实就是:多线程并发(效率较高)
总结:异步就是并发
同步编程模型:
线程t1和线程t2,在线程t1执行时候,必须等待t2线程执行结束,或者说是在t2线程执行的时候,必须等待t1线程执行结束,2个线程之间发生了等待的关系,这就是同步编程模型。效率较低,线程排队执行。
总结:同步就是排队