Java 线程
- 继承 Thread 类,重写 run 方法
- 实现Runnable 接口
new Thread(new Runnable() {
@Override
public void run() {
}
});
class t1 extends Thread{
@Override
public void run() {
super.run();
}
}
class t2 implements Runnable{
@Override
public void run() {
}
}
在Object上有一个
a.wait();
a.notify();
a.notifyAll();
用于线程同步
调用wait 时,线程进入阻塞,等待其他线程调用notify或notifyAll激活,
在Thread中有 sleep ,使当前线程进入休眠,
yield(); 使线程出让
synchronized(a){
}
代码块的同步,配合wait 跟notify 使用。Wait使当前线程交出锁,并进入wait池,notify 使进入已交出锁阻塞的线程进入另lock池,等待获得锁
Synchronized 是根据对象来锁定的。
线程同步还可以通过Lock 来同步
Readlock 读锁 WriteLock 写锁,相互配合使用
ReentrantLock 互斥锁