线程
程序员文章站
2022-06-21 11:29:33
...
线程
1.三种线程
1.继承Thread
main方法也是一个线程
-
新建线程:新建类继承Throw,重写run方法
public class Test() extends Throw(){ public void run(){ 线程需要执行的内容; } }
-
创建线程:
Test test = new Test();
-
启动线程:创建一个新的栈,而不是创建栈帧
test.start();
3.实现Runnable
-
新建线程:新建线程类,实现Runnable接口,重写run方法
public class Test implements Runnable{ public void run(){ 线程内容; } }
-
创建线程:
Thread thread = new Test();
-
执行线程:
new Thread(thread,"线程名").start();
3.使用Callable和Future
-
新建线程:新建范方法线程类,实现Callable类,重写call方法
public class Test implements Callable<call方法返回值>{ public Integer call() throws Exception{ 线程内容; } }
-
新建线程
Test test = new Test(); FutureTask<Integer> result = new FutureTask<>(test);
-
执行线程
new Thread(result.start());
-
返回值:get()会阻塞到结束时执行
try{ Integer sum = result.get(); }catch{}
2.相关方法
1.CurrentThread
-
获取线程对象(静态)
不能使用this,this指的是线程类这一个对象,而静态方法获取的是不同的三个对象
Thread thread = Thread.currentThread();
-
获取线程名
String name = thread.getName();
-
获取线程id
Int id = thread.getId()
-
获取线程优先级
thread.getPriority();
-
检查是否处于活动状态
thread.isAlive();
-
检查是否为守护线程
thread.isDaemon();
-
检查是否被中断
thread.isInterrupted();