多线程的创建方式有哪些?

ゞ 浴缸里的玫瑰 2023-09-27 16:54 187阅读 0赞
  • 1、「继承Thread类」,重写run()方法

public class Demo extends Thread{
//重写父类Thread的run()
public void run() {
}
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = new Demo();
d1.start();
d2.start();
}
}

  • 2.「实现Runnable接口」,重写run()

public class Demo2 implements Runnable{

//重写Runnable接口的run()
public void run() {
}

public static void main(String[] args) {
Thread t1 = new Thread(new Demo2());
Thread t2 = new Thread(new Demo2());
t1.start();
t2.start();
}

}

  • 3.「实现 Callable 接口」

public class Demo implements Callable{

public String call() throws Exception {
System.out.println(“正在执行新建线程任务”);
Thread.sleep(2000);
return “结果”;
}

public static void main(String[] args) throws InterruptedException, ExecutionException {
Demo d = new Demo();
FutureTask task = new FutureTask<>(d);
Thread t = new Thread(task);
t.start();
//获取任务执行后返回的结果
String result = task.get();
}

}

  • 4.「使用线程池创建」

public class Demo {
public static void main(String[] args) {
Executor threadPool = Executors.newFixedThreadPool(5);
for(int i = 0 ;i < 10 ; i++) {
threadPool.execute(new Runnable() {
public void run() {
//todo
}
});
}

}
}

发表评论

表情:
评论列表 (有 0 条评论,187人围观)

还没有评论,来说两句吧...

相关阅读

    相关 创建线方式

    方式一的问题在于,需要让当前 类继承于Thread类,而java又是一个单继承的,这样的话为了创建多线程就会导致无法继承其他的类了。4.将此Callable的接口实现类...