多线程
什么是线程
线程中的一条执行路径,也是CPU的基本调度单位。一个进程由一个或多个线程组成,彼此间完成不同的工作,同时执行,成为多线程。
进程和线程的区别
- 进程是操作系统资源分配的基本单位,而线程是CPU的基本调度单位
- 一个程序运行后至少有一个进程
- 一个进程可以包含多个线程,但是至少需要有一个线程,否则这个进程是没有意义
- 进程间不能共享数据段地址,但同进程的线程之间可以
线程的组成
任何一个线程都有基本的组成部分:
- CPU时间片:操作系统(OS)会为每个线程分配执行时间。
- 运行数据(堆空间):储存线程需使用的对象,多个线程可以共享堆中的对象。
- 运行数据(栈控件):储存线程需使用的局部变量,每个线程都拥有独立的栈。
- 线程的逻辑代码
线程的特点
- 线程抢占式执行(1.效率高,2.可防止单一线程长时间独占CPU)
- 在单核CPU中,宏观上同时执行,微观上顺序执行
创建线程
创建线程的三种方式:
- 继承
Thread类,重写run方法 - 实现
Runnable接口 - 实现
Callable接口
获取和修改线程名称
获取线程ID和线程名称:
- 在
Thread的子类中调用this.getId()或this.getName() - 使用
Thread.currentThread().getId()和Thread.currentThread().getName()
修改线程名称:
- 调用线程对象的
setName()方法 - 使用线程子类的构造方法赋值
评论








