什么是线程

简介: 什么是线程

线程是进程内独立运行的一个单位,而进程他可以由一个或者多个线程组成,但是一个线程只能对应一个进程。

如何创建线程

创建线程有继承Thread类、实现Runnable接口或者通过Callable和Future创建线程三种方法,具体创建过程如下。 本文来源于公众号:【Java学习提升】 专注于Java领域技术分享,Java知识体系学习、分享面试经验,让我们结伴而行,共同成长!

1、继承Thread类

下面我们通过代码来看下继承Thread类创建线程的具体步骤:

首先我们需要定义一个类来集成Thread类,继承过后需要重写Thread类的run()方法,代码如下:

然后我们调用该线程类对象的start()方法来启动线程,代码如下:

运行结果如下:

2、实现Runnable接口

我们还可以通过实现Runnable接口来创建线程类,具体如下:

首先我们需要创建一个类来实现Runnable接口,同样我们也需要重写run()方法

然后我们创建Runnable实现类的对象,把这个实现类的对象作为Thread类的target对象来创建线程,最后得到的Thread类的对象才是真正的线程对象,运行start()方法来启动线程

结果如下:

3、通过Callable和Future创建线程

首先创建一个类实现Callable接口,并且重写call()方法

然后使用FutureTask来包装MyCallable对象,同样和上面一样把FutureTask类的对象作为Thread类的target对象来创建线程并用start()方法来启动。

通过上面的例子我们发现,已经不是重写run()方法而是重写call()方法,并且还能自定义返回值,另外还有一个值得注意的问题是FutureTask实际上是实现了Runnable类并且也继承了Future接口,很显然FutureTask具有这两者的双重特征。

相关文章
|
6月前
|
Java Linux API
线程的认识
线程的认识
|
2月前
线程18
线程18
38 4
|
2月前
|
监控 安全 Java
线程(一)
线程(一)
|
Java C语言 Python
线程那些事
线程那些事
49 0
|
6月前
|
存储 安全 Java
C++线程浅谈
C++线程浅谈
|
Java Linux 程序员
04.关于线程你必须知道的8个问题(下)
大家好,我是王有志。今天是Java面试中线程问题的最后一部分内容,包括我们来聊同步与互斥,线程的本质,调度,死锁以及线程的优缺点等问题。
114 1
04.关于线程你必须知道的8个问题(下)
|
Java Linux 调度
03.关于线程你必须知道的8个问题(中)
大家好,我是王有志,欢迎来到《Java面试都问啥?》。我们书接上回,继续聊Java面试中关于线程的问题。
76 1
03.关于线程你必须知道的8个问题(中)
|
算法 安全 程序员
线程小练习
线程小练习
|
传感器 存储 自动驾驶
(6)线程
(6)线程
99 0