Sychronizede的作用
sychronized关键字解决的是线程同步的问题,被该关键字修饰的代码或方法在任意时刻只能有一个线程被执行。
用法
同步代码块
synchronized(同步监视器){
//需要被同步的代码
}
同步监视器 即锁,任何一个类的对象,要求多个线程共用同一把锁,不能定义在run()里面
需要被同步的代码就是操作共享数据的代码。
同步方法
将此方法声明为一个同步的。
构造方法可以使用sychronized修饰吗?
不可以,因为构造方法本身就属于线程安全的
sychronized和ReentrantLock的异同
同:两者都可以解决线程安全问题
异:sychroized在执行完同步代码之后会自动释放同步监视器;ReentrantLock需要手动启动锁,也需要手动释放锁。