线程安全:在多条线程访问的时候,我们的程序还能按照我们预期的行为去执行 用 synchronized(同步)关键字 来保证线程安全 具体表现为以下3种形式。 对于普通同步方法,锁是当前实例对象。
public synchronized void HelloWorld(){
方法体;
}
主方法
MyThread3 helloWord 没加synchronized打印,此时我们其他线程进行了资源抢占
helloWord加 synchronized后打印
对于静态同步方法,锁是当前类的Class对象。
public synchronized static void HelloWorld(){
方法体;
}
主方法
MyThread2 helloWord 没加 synchronized 打印,此时我们其他线程进行资源抢占
helloWord 加 synchronized后打印
对于同步方法块,锁是Synchonized括号里配置的对象
synchronized (对象) { //对象不能为Intger 对象,
方法体
}
主方法
MyThread5 没加sychronized 打印,此时我们其他线程进行资源抢占
加 sychronized 打印
此时我们看到 线程对 student 对象进行了同步操作