1,线程的概念
2,如何启动一个线程
继承Thread类,实现runnable接口
3,synchronized
互斥锁、可重入锁
synchronized(object) 锁住的是堆内存对象,不是引用
synchronized(this)
public synchronized void a(){//锁定的是对象,不是代码块
}
static方法加synchronized,锁住的是class,不可以synchronized(this)
同步方法未执行完,可以执行非同步方法
1,线程的概念
2,如何启动一个线程
继承Thread类,实现runnable接口
3,synchronized
互斥锁、可重入锁
synchronized(object) 锁住的是堆内存对象,不是引用
synchronized(this)
public synchronized void a(){//锁定的是对象,不是代码块
}
static方法加synchronized,锁住的是class,不可以synchronized(this)
同步方法未执行完,可以执行非同步方法