Java 开启多线程常见的4种方法

网友投稿 449 2022-07-26


目录简介1. 实现 Runnable 接口2. 实现 Callable 接口3. 继承 Thread 类4. 匿名内部类的写法

简介

常见的4种使用线程的方法:

1实现 Runnable 接口;

2实现 Callable 接口;

3继承 Thread 类。

4匿名内部类的写法。

1. 实现 Runnable 接口

编写测试类RunnableDemo 实现 Runnable 接口,实现接口中的 run() 方法。

public class RunnableDemo implements Runnable {

@Override

public void run() {

System.out.println(Thread.currentThread().getName() + "执行了");

}

/**

* 使用 Runnable 实例再创建一个 Thread 实例,然后调用 Thread 实例的 start() 方法来启动线程。

*/

public static void main(String[] args) {

RunnableDemo runnable = new RunnableDemo();

Thread thread0 = new Thread(runnable);

Thread thread1 = new Thrhttp://ead(runnable);

thread0.start();

thread1.start();

}

}

运行main方法

2. 实现 Callable 接口

与 Runnable 相比,Callable 可以有返回值,返回值通过 FutureTask 进行封装。

public class CallableDemo implements Callable {

@Override

public String call() {

System.out.println(Thread.currentThread().getName() + "执行了");

return "执行成功!";

}

public static void main(String[] args) throws ExecutionException, InterruptedException {

CallableDemo mc = new CallableDemo();

FutureTask ft0 = new FutureTask<>(mc);

FutureTask ft1 = new FutureTask<>(mc);

Thread thread0 = new Thread(ft0);

Thread thread1 = new Thread(ft1);

thread0.start();

thread1.start();

System.out.println(ft0.get());

System.out.println(ft1.get());

}

}

启动main方法

3. 继承 Thread 类

同样也是需要实现 run() 方法,因为 Thread 类也实现了 Runable 接口。

public class ThreadDemo extends Thread {

@Override

public void run() {

System.out.println(Thread.currentThread().getName() + "执行了");

}

public static void main(String[] args) {

ThreadDemo thread0 = new ThreadDemo();

ThreadDemo thread1 = new ThreadDemo();

thread0.start();

thread1.start();

}

}

启动main方法

4. 匿名内部类的写法

new Runnable()是一个实现接口Runnable的类的对象,后面的run()方法是该类里实现的方法,这就是匿名内部类的写法

public class ThreadTest {

public static void start() {

new Thread(new Runnable() {

@Override

public void run() {

System.out.println(Thread.currentThread().getName() + "执行了");

}

}).start();

}

public static void main(String[] args) {

start();

start();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现简单扫雷程序
下一篇:Springboot整合minio实现文件服务的教程详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~