线程安全:
一个类是安全的, 是指在被多个线程访问时, 类可以持续进行正确的行为。
无状态对象:不包含域,也没有引用其他类的域,因此不会在多线程的并发访问的时候,线程之间没有共享变量(域),各线程的执行是相互不影响的, 所以无状态对象永远是线程安全的的。
synchronized:将修饰的代码块, 或方法加锁, 执行完后, 锁自动放开, synchronized修饰的语句块,尽可能小, 这样可以提高并发的性能。
synchronized 锁是可重进入的, 如
class Father{
public synchronized void test(){
System.out.println("Father test");
}
}
class Sun extends Father{
public synchronized void test(){
System.out.println("sun test");
super.test();
}
}
如果synchronized这种内部锁不是可重入的, 代码将死锁