1、线程创建线程有两种方法:1 继承 Thread 类,重写 run 方法2 实现 Runnable 接口线程有五种状态:1线程刚刚创建(new)2线程启动,就绪(runnable)可运行3线程运行,运行中(running)4线程阻塞,挂起(block)5线程结束,死亡(dead)多线程处理资源共享用 synchronized 关键字!引起线程阻塞挂起的原因:1. Thread.sleep()方法,线程睡一会,不会释放锁资源2. Suspend()方法,暂停线程,不会释放锁资源,容易造成死锁,建议不使用,resume()方法恢复线程3. Wait()方法,使线程进入等待状态,释放锁资源,notif
2、y()或 notifyAll()唤醒线程,这三个方法必须在获得对象锁的状态下使用,否则报错!4. IO阻塞线程优先级;线程优先级的大小决定线程获得 CPU 的机会!观察者模式观察者模式中有观察者(Observer)和被观察者(Subject),当被观察者发生了某些变化时,将变化通知观察者。观察者:Public interface ObserverVoid update(Observable o,Object arg);被观察者:Public interface ObservableVoid addObserver(Observer o);Void removeObserver(Observer o);Void notifyObservers();