一起学JAVA之【基础篇】多线程 Thread 类详解
线程生命周期
重要方法
1、start方法
启动一个线程,不能多次启动同一个线程,多次启动会报错
2、run方法
一个线程将要执行的方法,当调用start启动一个线程后,会自动执行run方法,所以我们要重载run方法来执行自己的业务
3、sleep方法(static)
让当前线程休眠指定时间,并进入阻塞状态,而且sleep方法不会释放锁,所以导致其他线程想要获取该锁获取不到
4、yield方法(static)
让当前线程暂停,但是不会让线程进入阻塞状态,而是让线程重回就绪态,不能控制具体时间,和sleep方法一样不会释放锁,另外,当某个线程调用了yield()方法之后,只有优先级与当前线程相同或者比当前线程更高的处于就绪状态的线程才会获得执行机会
5、join方法
让当前线程执行完毕或者执行一段时间,举个列子:假如在main线程中,调用thread.join方法,则main方法会等待thread线程执行完毕或者等待一定的时间。如果调用的是无参join方法,则等待thread执行完毕,如果调用的是指定了时间参数的join方法,则等待一定的时间(实际上是调的wait方法,线程会阻塞,但是会释放锁)
6、interrupt方法(static)
线程中断,使在阻塞中的线程中断并抛出异常,不能中断正常的线程