多线程概念

Process进程和Thread线程

  1. 进程是操作系统分配资源的基本单位 线程是操作系统调度的最小单位,一个进程至少有一个线程
  2. 进程享有独立的内存空间,相互之间不能访问,一个进程的崩溃不会影响其他进程。 一个进程之间的线程共享一片内存空间,一个线程的崩溃可能导致整个进程的崩溃
  3. 通常来讲进程的上下文切换所耗费的资源较大,线程上下文切换所需的资源较少,主要是与其操作的数据量的大小有关系

注:程序运行起来才被称为进程,本身是个静态的概念

多线程存在的问题

● 对同一份资源进行操作时,会存在资源抢夺的问题

● 会带来额外的开销,如cpu调度时间,并发控制开销

● 线程都在自己的工作空间中交互,内存控制不当会导致数据不一致

多线程实现方式

Thread类,继承实现

示例方式:新建类并继承Thread类,重写run方法,创建线程对象并调用start方法开启线程。

会受到单继承局限性的影响

Runnable接口,接口实现

示例方式

新建类并实现Runnable接口,重写run方法,调用时需通过向新建的Thread类中传入目标对象后,再调用Thread类的start方法开启线程。