线程初始

线程的理解

线程可以理解为在进程中独立运行的子任务,在一个程序运行的时候他有许多的子任务在运行,例如qq.exe在运行时,还有好多子任务在后台运行。在运用多项成技术后,可以在同一时间内运行更多不同种类的任务。

线程的使用

继承Thread类

  • 第一种方法是继承Thread类,Thread类实现了Runnable接口public class Thread implement Runnable,他们之间有多态的关系,但是在继承Thrand类时,不支持多继承。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//我们继承Thread类来创建线程
public class MyThread entends Thread{
@override
public void run(){
System.out.println("MyThread");
}
}
public class Test{
public static void main(String args[]){
MyThread thread = new MyThread();
thread.start();
System.out.println("运行结束");
}
}
//结束后运行结果是
运行结束
MyThread
//可以看出并不是按照正常的顺序结构来执行的,这说明调用了线程。线程的运行具有随机性,CPU在执行线程是具有不确定性的。

实现Runnable接口

  • 第二种方法是实现Runnable接口。当一个类已经是一个父类了,这样它就不能再继承Thread类了,因为java不支持多继承,这个时候便只能实现Runnable接口了。
    1
    2
    3
    4
    5
    6
    7
    public class MyRunnable implements Runnable{
    @override
    public void run(){
    System.out.println("running");
    }
    }
    //实现Runnable接口的类,可以被类继承。