多线程概述
先来了解几个概念
进程:
正在运行的程序,是系统进行资源分配和调用的独立单位
每一个进程都有它自己的内存空间和系统资源
线程:
进程中的单个顺序控制流 是一条执行路径
一个进程如果只有一条执行路径 则称为单线程程序
一个进程如果有多条执行路径 则称为多线程程序
并行和并发
前者是逻辑上同时发生 指在某一个时间内同时运行多个程序
后者是物理上同时发生 指在某一个时间点同时运行多个程序
线程的创建与启动
继承Thread类创建线程
定义Thread的子类 重写run方法 run方法体就代表了线程需要完成的任务 start方法用来启动线程
public class MyThread extends Thread { @Override public void run() { for (int x = 0; x < 200; x++) { System.out.println(getName()+x); } } public static void main(String[] args) { MyThread my1 = new MyThread(); MyThread my2 = new MyThread(); my1.start(); my2.start(); } }
返回当前正在执行的线程对象 public static Thread currentThread()
获取线程对象的名称 public final String getName()
设置线程对象的名称 public final void setName(String name)
实现Runnable接口创建线程
定义Runnable接口的实现类 重写该接口的run方法
创建Runnable的实现类对象 兵役此实例作为Thread的target来创建Thread对象 该对象才是真正的线程对象
FristThread ft = new FristThread(); new Thread(ft);
Runnable对象仅仅作为Thread对学校的target Runnable实现类里包含的run()方法仅作为线程执行体 实际的线程对象Thread实例