概述:
进程(Process)是计算机中程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。通俗来说,我们的计算及在工作时会开启多个进程,例如我们可以一边用听歌软件听歌,一边用word编写文档,这就是两个独立的进程,这些进程可以是并发的,也就是说同时进行(实际上是由于这些进程交替运行的时间间隔短,我们很难察觉到非同时性)。
线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。也就是说一个进程中可以包含多个线程,进程是线程的容器。
本文主要总结建立线程的三种方式,其中后两种方式:实现Runnable接口与实现Callable接口属于同一种方式;直接继承Thread线程类是另外一种方式;它们的使用方式略有不同,注意区分。
1.直接继承Thread类
定义Thread类的子类,并重写run()方法。
public class FirstThread extends Thread {
private int i=0;
public void run() {
for( ;i<5;i++) {
System.out.println(this.getName()+"线程中的run方法执行"+" " +"i的值为:"+i);
}
}
public static void main(String[] args) {
for(int i=0;i<10;i++) {
System.out.print("当前线程名字为:"+" ");
System.out.println(Thread.currentThread().getName()+" " +"循环变量i的值为:"+i);
if (i==5) {
new FirstThread().start();
new FirstThread().start();
}
}
}
}
- 当前线程名字为: main 循环变量i的值为:0
- 当前线程名字为: main 循环变量i的值为:1
- 当前线程名字为: main 循环变量i的值为:2
- 当前线程名字为: main 循环变量i的值为:3
- 当前线程名字为: main 循环变量i的值为:4
- 当前线程名字为: main 循环变量i的值为:5
- Thread-0线程中的run方法执行 i的值为:0
- Thread-0线程中的run方法执行 i的值为:1
- Thread-0线程中的run方法执行 i的值为:2
- Thread-0线程中的run方法执行 i