java多线程
一、实现多线程的方式:
1、通过继承Thread类实现
2、通过实现runnable接口
3、通过匿名内部类的方式创建
二、线程安全
1、线程同步
1. 同步代码块。
synchronized(同步锁){
需要同步操作的代码
}
同步锁可以为任意对象
多个线程要使用同一把锁
2. 同步方法。
public synchronized void method(){
可能会产生线程安全问题的代码
}
对于非static方法,同步锁就是this
对于static方法,我们使用当前方法所在类的字节码对象(类名.class)
3. 锁机制。
java.util.concurrent.locks.Lock 机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作, 同步代码块/同步方法具有的功能Lock都有,除此之外更强大,更体现面向对象
public void lock() :加同步锁。
public void unlock() :释放同步锁