一个线程修改数据,另一个线程同时访问这个数据,会引起数据访问冲突、数据不安全
线程安全(线程同步)
synchronized同步
线程执行到同步代码时,要先获得对象的同步锁才能执行
如果得不到同步锁,就要等待锁被归还
java中任何对象都有同步锁
synchronized代码块
synchronized(对象){}
指定的对象作用:争夺指定对象的锁
一般指共享的数据对象
synchronized方法
非静态方法
synchronized void f(){
}
获得当前对象的锁
静态方法
static synchronized void f(){
}
要获得“类对象”的锁