1.Thread 1.实现了Runnable接口,是类 2.是多线程的实现方式 2.Runnable 1.接口,只有一个run方法 2.是多线程的实现方式 3.Thread与Runnable的区别 1.Thread是类,Runnable是接口 2.Runnable还可以用于“资源的共享”。即,多个线程都是基于某一个Runnable对象建立的,它们会共享Runnable对象上的资源。 4.start,run 1.start是开启一个线程。由线程执行run方法,一个线程只能调用一次。run是直接调用run方法,可被重复调用。 5.sleep,waite 1.sleep 线程继续占有锁 2.waite 线程释放锁 6.synchronized 1.同步锁:每个对象都有一个同步锁,所以同步锁是依赖对象存在的。 2.当我们调用一个对象的synchronized时候,就获取到这个对象的同步锁。 3.不同线程一个对象的同步锁的访问是互斥的。 4.synchronized是实例锁,static synchronized是类锁 7.yield 1.让出执行权给更高优先级的线程使用,同级线程互相争抢。 2.与wait区别: 1.yield是将运行状态的线程进入到就绪状态,wait是将运行状态的线程进入到阻塞状态。 2.yield不是放锁,wait会释放锁 8.sleep 1.将运行状态的线程转入为阻塞状态 2.与wait区别:不会释放锁 9.interrupted 1.将线程进入到阻塞状态。 10.线程优先级 1.优先等级1~10,默认5 2.守护线程,非守护线程执行完毕,守护线程自动结束