千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  Java技术干货  >  正文

java创建多线程的方式

来源:千锋教育
作者:qyf
关键词: 哈尔滨 深圳
2023-05-19
分享

  Java创建多线程的方式有以下几种:

  继承Thread类:定义一个类继承Thread类,并重写run()方法,在该方法中编写线程执行的代码,然后创建该类的实例,并调用start()方法启动线程。

  示例代码:

public class MyThread extends Thread {
public void run() {
// 线程执行的代码
}
}

public class Main {
public static void main(String[] args) {
MyThread t = new MyThread();
t.start();
}
}

  实现Runnable接口:定义一个类实现Runnable接口,并实现该接口中的run()方法,在该方法中编写线程执行的代码,然后创建该类的实例,并将该实例作为参数传递给Thread类的构造方法创建Thread对象,最后调用start()方法启动线程。

  示例代码:

public class MyRunnable implements Runnable {
public void run() {
// 线程执行的代码
}
}

public class Main {
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();
}
}

  实现Callable接口:定义一个类实现Callable接口,并实现该接口中的call()方法,在该方法中编写线程执行的代码,然后创建该类的实例,并将该实例作为参数传递给FutureTask类的构造方法创建FutureTask对象,最后调用Thread类的构造方法创建Thread对象,并将FutureTask对象作为参数传递给该构造方法,最后调用start()方法启动线程。

  示例代码:

public class MyCallable implements Callable {
public Object call() throws Exception {
// 线程执行的代码
return null;
}
}

public class Main {
public static void main(String[] args) {
MyCallable c = new MyCallable();
FutureTask task = new FutureTask(c);
Thread t = new Thread(task);
t.start();
}
}

  以上三种方式都可以创建多线程,但是推荐使用第二种方式实现Runnable接口,因为Java中只支持单继承,如果使用第一种方式继承Thread类,就不能再继承其他类了,而使用第二种方式实现Runnable接口就可以避免这个问题。另外,第三种方式使用Callable接口创建线程可以返回线程执行结果。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

下一篇

相关推荐

  • java创建多线程的方式 Java创建多线程的方式有以下几种:继承Thread类:定义一个类继承Thread类,并重写run()方法,在该方法中编写线程执行的代码,然后创建该类的实例,并调用start()方法启动线程。示例代码
  • java线程的几种状态 Java线程有以下几种状态:NEW:线程被创建但未启动时的状态。RUNNABLE:线程正在Java虚拟机中执行的状态。但是,它可能正在等待来自操作系统的处理器资源。BLOCKED:线程被阻塞等待监视器
  • redis和mysql区别 Redis和MySQL是两种不同类型的数据库,有一些区别,包括以下几个方面:数据类型:Redis是一种基于内存的NoSQL数据库,支持多种数据类型,如字符串、哈希、列表、集合和有序集合等。而MySQL
  • ajax同步和异步的区别 在Ajax中,同步(Synchronous)和异步(Asynchronous)都是用于指定请求方式的两个选项。同步请求会阻塞当前线程,直到请求完成并返回结果后才继续执行后续代码,也就是说,如果页面需要
  • jsp和html区别 而JSP是用于动态页面的开发,可以将Java代码嵌入到HTML页面中,动态地生成页面内容。综上所述,HTML适用于静态网页的开发,JSP适用于动态网页的开发,需要使用Java代码来实现页面的动态生成。
  • js数组中去除重复值的几种方法 使用Map:利用Map数据结构,遍历数组,将数组元素作为Map的键值,由于Map不能有重复键值,所以会自动去除数组中的重复值。代码如下: