解决线程安全的问题,有两种方法,一种是使用同步方法,synchronized关键字,另一种是使用Lock和Condition对象。
一 synchronized同步代码块
创建任意一个对象
synchronized(锁对象) {
可能会产生线程安全问题的代码
}
如下:

结果线程安全,不过线程安全的代价是运行速度变慢。
使用更为简单的synchronized声明方法。如下

二 使用Lock接口,以及其中的lock()方法和unlock()方法替代同步,如下:

运行结果如下:

结果表明线程安全。
网友评论