线程诞生的原因: 随着计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,已经无法满足越来越复杂的程序的要求了。于是就发明了线程。(要了解线程,首先就要清楚历史背景,先有进程后有线程。)
进程的概念:进程是指可执行程序,并存放在计算机存储器的一个指令序列,它是一个动态执行的过程。
线程的概念: 线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。
线程的组成: 进程的组成:
a.线程ID a.内存空间(代码、数据、进程空间、打开的文件)
b.当前指令指针(PC) b.一个或多个线程组成
c.寄存器和堆栈组成。
线程和进程的区别:
线程的创建:
a.继承Thread类
class MyThread extends Thread{
public void run() {
System.out.println(getName()+"线程 正在运行中!");
}
}
public class ThreadTest {
public static void main(String[] args) {
MyThread mt=new MyThread();
mt.start();
}
}
b.实现 Runnable接口
class PrintRunnable implements Runnable{
public void run() {
System.out.println(Thread.currentThread().getName()+"在运行中!");
}
}
public class Test {
public static void main(String args[]) {
PrintRunnable pr1=new PrintRunnable();
Thread th1=new Thread(pr1);
th1.start();
PrintRunnable pr2=new PrintRunnable();
Thread th2=new Thread(pr2);
th2.start();
}
}
线程的生命周期如图所示:
简单说明一下:a.jdk8中stop()方法已经不使用了。
今天先复习到这里吧。。。持续更新~