第七篇:Java——三种创建线程Thread的方法
时间:2019-01-22
本文章向大家介绍第七篇:Java——三种创建线程Thread的方法,主要包括第七篇:Java——三种创建线程Thread的方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
第七篇:Java——三种创建线程Thread的方法
---------------------------------------------------------------------------------------------------------
在日常生活中我们会创建多线程将耗时代码放进新建的线程里,提高代码的执行速度。那么今天我们就来看一下创建线程的三种方法
方法一:
新建类继承Thread类并重写run()方法,在主类中创建该类的子类对象,start()方法开启线程,代码如下://新建类并继承Thread类
public class MyThread extends java.lang.Thread {
//重写run方法方法里面填写该线程执行的代码,一般为耗时代码
@Override
public void run() {
//这里面填写新线程里面的代码,一般为耗时代码
}
}
在主类中创建该类的子类对象,并开启线程
public class Test {
public static void main(String[] args) {
//创建该类的子类对象
MyThread th = new MyThread();
//开启线程
th.start();
}
}
方法二:
新建类实现Runnable接口并重写run()方法//新建类并实现Runnable接口
public class MyThread implements Runnable {
//重写run方法
@Override
public void run() {
//该线程代码,一般为耗时代码
}
}
创建该类的子类对象,作为参数传给Thread类,开启线程
public class Test {
public static void main(String[] args) {
MyThread myThread = new MyThread();
Thread th = new Thread(myThread);
th.start();
}
}
方法三:
新建类并实现Callable接口,并重写run方法public class MyThread implements Callable<> {
@Override
public Object call() throws Exception {
//在这里填写线程代码,一般为耗时代码
//用此方法创建的线程一定要有返回值
return null;
}
}
在主类中创建该接口并将该接口的子类对象作为参数传给FutureTask,再新建Thread对象,将FutureTask作为参数传给Thread
public class Test {
public static void main(String[] args) {
//创建接口
MyThread myThread = new MyThread();
//将接口的子类对象传给FutureTask
FutureTask task = new FutureTask<>(myThread);
//创建Thread对象并将task传给它
Thread th = new Thread(task);
//开启线程
th.start();
}
}
以上是创建线程的三种方法,我们常用的是方法一与方法二。方法二比方法一更具拓展性和维护性。
方法二是实现了Runnable接口,方法三是实现了Callable接口,但是实现Runnable接口重写的run()方法中没有返回值,如果我们需要有返回值,我们就用方法三实现Callable接口并重写call()方法
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释