前言
本文主要介绍一下Java中的线程,以及如何建立一个线程。
一、什么是线程?
首先需要了解进程与线程的概念。
进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间。
线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行,一个进程最少有一个线程。
线程实际上是在进程基础上的进一步划分,一个进程启动后,里面的若干执行路径又可以划分为若干个线程。
二、实现线程方法
1.继承Thread,重写run方法
run方法就是线程要执行的任务方法。
(1)定义线程代码如下(示例):
//定义一个线程类,继承Thread,重写run方法
public class myThread extends Thread {
@Override
public void run() {
//执行任务
System.out.println("123456");
}
}
(2)开启线程:
public static void main(String[] args) throws IOException, ClassNotFoundException {
myThread m = new myThread();
m.start();//线程开启
}
运行后截图如下:
注意:这个执行路径的触发方式,不是调用run方法,而是通过thread对象的start()来启动任务。
2.实现Runnable,重写run方法
(1)先定义一个类,实现Runnable,重写run方法,用于给线程执行的任务,代码如下(示例):
public class myRunnable implements Runnable{
@Override
public void run() {
System.out.println("一二三四五");
}
}
(2)开启线程,代码如下:
public static void main(String[] args) throws IOException, ClassNotFoundException {
//创建一个任务对象
myRunnable r = new myRunnable();
//创建一个线程,并分配一个任务
Thread t = new Thread(r);
//启动这个线程
t.start();
}
运行后截图如下:
总结
以上就是实现线程的两种方式,继承Thead和实现Runable.
相比较继承Thread,实现Runable有如下优势:
1.实现Runable通过创建任务,然后给线程分配的方式实现的多线程,更适合多个线程同时执行相同任务的情况;
2.继承Thread是单继承,而实现Runable可以避免单继承所带来的局限性;
3.实现Runable任务和线程本身是分离的,提高了程序的健壮性;
4.在线程池技术中,只接收Runable类型的任务,不接收Thread类型的线程。
但继承Thread,可以采用匿名类不类的方式创建一个一次性线程。比如:
new Thread(){
@Override
public void run() {
//加入要执行的任务
}
}.start();
以上就是本次内容,如有错误,请联系交流,感谢!