创建线程的三种方法: 1 继承Thread类 (extends) 2 实现Runnable接口 (implemments) :new Thread(Runnable,name).start() 3 实现Callable接口 (implemments) (一般使用Runnable 、Callable接口来创建多线程,因为线程类还可以继承其他类) 线程的生命周期(五个状态): 新建(New):new Thread() 就绪(Runnable) :Thread().start() 运行(Running) :执行线程体的run()方法 阻塞(Blocked) :sleep() 、yield() 死亡(Dead):isAlive() 判断线程是否处于死亡或者新建状态 注:若不调用线程的start()方法,直接调用run(),则系统会把线程对象当作一个普通对象,而run()方法也是一个普通方法,而不是线程的执行体了。 线程的休眠(即从运行状态退出到阻塞或者就绪态): sleep() : 线程休眠 ,给其他线程执行。 yield() :线程让步给相同的优先级或者更高优先级的线程。 改变线程的优先级(1-10): setPriority(int newPriority) MAX_PRIORITY(10)、MIN_PRIORITY(1)、NORM_PRIORITY(5) 设置后台线程:setDaemon(true),主线程main默认为前台线程,其创建的子线程默认为前台线程,后台线程创建的子线程默认是后台线程。 后台线程的特征:如果所有前台线程死亡,后台线程将自动死亡。所以又称为守护线程或精灵线程。 join():使用此方法让一个线程等待另一个线程完成,当在某线程中调用其它线程的join()方法时,调用线程将阻塞,直到被调用线程执行完毕为止。谁调用谁阻塞,被调用的进入运行态。