解决线程安全问题的方式二:同步函数:使用synchronized修饰的一个函数。
注意:1.如果是一个非静态的同步函数的锁对象是this对象,如果是静态的同步函数的锁对象是所属类的字节码文件(class对象)
2.同步函数的锁对象是固定的,不能有我们来决定。
推荐使用:同步代码块
1.同步代码块的锁对象可以由我们自己来决定,而同步函数则固定,不能由我们来决定
2.同步代码块可以很方便的控制需要被同步的代码,而同步函数必须是整个函数所有的代码都被同步。
解决线程安全问题的方式二:同步函数:使用synchronized修饰的一个函数。
注意:1.如果是一个非静态的同步函数的锁对象是this对象,如果是静态的同步函数的锁对象是所属类的字节码文件(class对象)
2.同步函数的锁对象是固定的,不能有我们来决定。
推荐使用:同步代码块
1.同步代码块的锁对象可以由我们自己来决定,而同步函数则固定,不能由我们来决定
2.同步代码块可以很方便的控制需要被同步的代码,而同步函数必须是整个函数所有的代码都被同步。