线程初步(待续)
线程
进程与线程
进程(process):
进程是具有独立功能的程序在某个数据集合上的一次执行活动,进程是操作系统进行资源分配和保护的基本单位。进程既能描述程序的并发进行,也能共享系统资源的一个一个基本单位。
线程(thread):
线程是进程中能够并发执行的实体,是进程的组成部分,也是处理器调度和分派的基本单位,允许一个进程包含多个线程,这些线程共享进程所获得的内存空间和资源,为完成某一项任务而协同工作。
引入线程目的:并发粒度更细,并发性更好
线程基本思路:分离进程的两项功能“独立分配资源”和“被调度分配执行”,进程完成“独立分配资源的任务”,无需频繁切换。线程实体完成“被调度分配执行”,线程频繁调度和切换
线程调度:
。。。
Java创建线程对象的两种方式
- 声明线程类继承Thread类,覆盖run()方法,提供线程运行方法
- 声明线程的目标对象类(target),实现runnable的接口,提供线程运行方法
两种方式的比较
- 继承Thread类方式:有点是Thread的子类对象就是线程对象,具有Thread类声明的方法,且具有线程运行方法,缺点是不适合多继承(extend)
- 实现Runnable接口方式: 当一个已经继承一个父类,还要以线程方式运行,采用实现接口方法