一、创建线程 重点 1、继承 Thread
2、实现 Runnable
知识点:其中用到了设计模式中的代理模式,代理角色: 持有真实角色的引用。引申到aop,就是用的动态代理 3、实现Callable (了解) 二、线程的状态
1、 新生 -->start -->就绪-->运行-->阻塞-->终止 2、终止线程 (重点),在线程体重设置结束条件 3、阻塞:
join 用法:引用.join();//把引用线程合并到当前线程,并且先执行引用线程
yield用法:Thread.yield();//把当前线程腾出来,让其他线程先执行,不释放锁
sleep用法:Thread.sleep();//等待,不释放锁
wait() :this.wait();等待,释放锁
setName():设置名称
getName():获取名称
isAlive():判断状态
setPriority();设置优先级
this.notify(); //唤醒在当前对象等待池中等待的第一个线程。不释放锁的才能唤起
notifyAll叫醒所有在当前对象等待池中等待的所有线程。不释放锁的才能唤起
三、线程的信息 1、Thread.currentThread 2、获取名称 设置名称 设置优先级 判断状态 四、同步:对同一份资源 synchronized(引用类型变量|this|类.class){ } 修饰符 synchronized方法的签名{ 方法体 } 过多的同步可能造成死锁
五、生产者消费者模式 六、任务调度
Timer timer =new Timer();
schedule(TimerTask task, Date firstTime, long period)
第一个参数,任务
第二个参数,第一次运行的开始时间
第三个参数,下次运行和上次运行的时间间隔
