一.JDK5的Lock锁:
Lock l = ....;
try{
//同步的代码
}finally{
l.unlock();
}
二.死锁:
见homework的doc文档;
三."单生产"和"单消费":
1.此例只适用于"单生产"和"单消费";
2.当访问的资源不足时,可以让当前访问的线程等待:wait()
当资源准备好后,可以唤醒等待的线程:notify()/notifyAll()
四.线程组:
1.所有线程默认属于:main线程组;
2.自行分配线程组:
1).实例化线程组对象:ThreadGroup tg = new ThreadGroup();
2).实例化一个Thread对象:new Thread(tg,new MyThread());
3.我们可以统一对组内的线程进行统一操作:例如:停止线程
tg.interrupt();//停掉组内所有的线程
五.线程池:
JDK5新增了一个Executors工厂类来产生线程池,有如下几个方法
public static ExecutorService newCachedThreadPool()
public static ExecutorService newFixedThreadPool(int nThreads)
public static ExecutorService newSingleThreadExecutor()
操作线程池:
Future<?> submit(Runnable task):执行线程,并缓存线程;
<T> Future<T> submit(Callable<T> task)
六.JDK5实现线程的方式:
1.自定义类,实现Callable接口;
2.重写call()方法;
3.启动线程:
1).获取一个线程池;
2).调用线程池的submit()方法;
七.定时器:
1.TimerTask(抽象类):定义任务
1).自定义类继承自TimerTask;
2).重写run()方法;
2.Timer类:启动定时器:
1).构造一个Timer对象;
2).public void schedule(TimerTask task, long delay)
public void schedule(TimerTask task,long delay,long period)
|