- synchronized关键字的作用
同步与线程安全:synchronized是Java中的一个关键字,用于提供一种同步机制,确保线程安全。它通过在多线程环境中控制对共享资源的访问,防止数据的不一致性问题。
修饰代码块:当synchronized修饰代码块时,它只对指定的对象(作为锁对象)进行同步。这意味着在同步块开始执行前,线程必须获取到锁对象的监视器(monitor),执行完毕后释放监视器。这通过字节码层面的monitorenter和monitorexit指令实现。未获取到锁的线程将会被阻塞,直至锁被释放。
修饰方法:当synchronized修饰整个方法时,锁住的是当前实例对象(如果是非静态方法)或者是类的Class对象(如果是静态方法)。这意味着在任何时刻,只有一个线程可以访问该方法,保证了方法内的操作对其他线程是不可见的,直到该方法执行完成并释放锁。
如果大家需要视频版本的讲解,欢迎关注我的B站: