知识点概要:
- 理解进程
- 两种创建进程的方法
- 线程的四种状态
- 同步代码块,同步函数,静态同步函数(synchronized)
- 何为Class对象
- 简单理解线程间的死锁
- 线程间的通信
- 等待/唤醒机制
- 线程调度——sleep方法
- 线程调度——优先级(setpriority)
- 线程调度——yield方法
- 线程调度——join方法
- 线程调度——守护线程(setDaemon)
- 线程调度——线程的停止(interrupt)
- 同步变量的volatile关键字
- Java新特性——六种线程池
下面是死锁代码
class MyLock {
public static final Object locka = new Object();
public static final Object lockb = new Object();
}
class DeadLockTest implements Runnable {
private boolean flag;
public void run() {
if(flag) {
while(true)
synchronized(MyLock.locka) {
System.out.println(Thread.currentThread().getName()+"if locka......");
synchronized(MyLock.lockb) {
System.out.println(Thread.currentThread().getName()+"if lockb......");
}
}
}
else {
while(true)
synchronized(MyLock.lockb) {
System.out.println(Thread.currentThread().getName()+"else lockb......");
synchronized(MyLock.locka) {
System.out.println(Thread.currentThread().getName()+"else locka......");
}
}
}
};
public DeadLockTest(boolean flag) {
this.flag = flag;
}
}
public class text {
public static void main(String[] args) {
DeadLockTest a = new DeadLockTest(true);
DeadLockTest b = new DeadLockTest(false);
Thread t1 = new Thread(a);
Thread t2 = new Thread(b);
t1.start();
t2.start();
}
}