线程初步(待续)


线程

进程与线程

进程(process):

进程是具有独立功能的程序在某个数据集合上的一次执行活动,进程是操作系统进行资源分配和保护的基本单位。进程既能描述程序的并发进行,也能共享系统资源的一个一个基本单位。

线程(thread):

线程是进程中能够并发执行的实体,是进程的组成部分,也是处理器调度和分派的基本单位,允许一个进程包含多个线程,这些线程共享进程所获得的内存空间和资源,为完成某一项任务而协同工作。

引入线程目的:并发粒度更细,并发性更好

线程基本思路:分离进程的两项功能“独立分配资源”和“被调度分配执行”,进程完成“独立分配资源的任务”,无需频繁切换。线程实体完成“被调度分配执行”,线程频繁调度和切换

线程调度:

。。。

Java创建线程对象的两种方式

  1. 声明线程类继承Thread类,覆盖run()方法,提供线程运行方法
  2. 声明线程的目标对象类(target),实现runnable的接口,提供线程运行方法

两种方式的比较

  1. 继承Thread类方式:有点是Thread的子类对象就是线程对象,具有Thread类声明的方法,且具有线程运行方法,缺点是不适合多继承(extend)
  2. 实现Runnable接口方式: 当一个已经继承一个父类,还要以线程方式运行,采用实现接口方法