线程安全
在共用实例变量的时候,多线程可能导致变量不安全.
所以通过加锁机制来保证线程安全,即使线程被阻塞,也不能被改变.
在java中是通过同步机制来解决线程的安全问题的
方法一:同步代码块
synchronized(同步监视器){
同步代码块}
使用这个同步代码块保证同时间只有一个线程在执行这个方法.
同步监视器:任何一个类的对象都可以当锁.但必须是共享的,最简单的就是this单纯的共享变量可以加上static就行
操作共享数据的代码才需要进行同步
方法二:
方法三:以空间换时间,理论上来说加锁必然导致性能下降,那么我们可以通过为创造线程数量的变量,就可以一一对应,提高同时执行速度,但是相应的在实例化和空间占用上会造成损失,应当针对具体问题进行取舍.