一,使用线程
(1)实现runnable接口
先创建一个runnable实例,然后从这个实例构造一个thread对象,再调用thread对象的start方法去启用。
Runnable task1 = () ->
{
try
{
……
}catch{
}
};
Thread t1 = new Thread(task1)l
t1.start();
(2)继承thread类
class MyThread extends Thread
{
public void run()
{
task code
}
}
二,线程状态
(1)New(新建)
当用一个new操作符创建一个线程时,这个线程还没有开始运行,这意味着它的状态是新建。
(2)Runnable(可运行)
一旦调用start方法,线程就处于可运行状态。
(3)Blocked(阻塞)
当一个线程试图获得获取一个内部的对象锁,而这个锁目前被其他线程占有,该线程就会被阻塞。
(4)Waiting(等待)
当线程等待另一个线程通知调度器出现一个条件时,这个线程会进入等待状态。
(5)Timed waiting(计时等待)
有几个方法有超时参数,调用这些方法会让线程进入计时等待状态。
(6)Terminated