30、java多线程

内容纲要

file
@[toc]

30、java多线程

进程

独立性

  • 拥有独立资源
  • 独立的地址
  • 无授权其他进程无法访问

动态性

  • 与程序的区别是:进程是动态的指令集合,而程序是静态的指令集合
  • 加入时间概念
  • 有自己的生命周期和不同的状态

并发性

  • 多个进程可以在单核处理器并发执行
  • 多个进程互不影响
  • 不并行的区别是:并行是同一时刻多个进程在多个处理器同时执行,而并发是指在同一个时刻只能执行一条执行,但相互切换迅速,宏观上看是执行多个指令

线程

  • 线程现对于进程同进程相对于操作系统
  • 多个线程共享同一进程的资源
  • 轻量级进程
  • 性能高,创建容易
  • 应用:一个浏览器同时下载多个图片,一个服务器同时处理多个请求

生命周期

新建

  • new一个Thread

就绪

  • 执行start方法

运行

  • 开始执行run方法

阻塞

  • 进入阻塞
    • 调用sleep方法主动放弃处理器资源
    • 想获得一个同步检测器,但该同步检测器被其他资源所占有
    • 调用一个阻塞时的IO方法,在该方法返回前,线程阻塞
    • 等待某个notify通知
    • 调用suspend挂起
  • 解除阻塞
    • 调用阻塞式IO方法已返回
    • 成功后的了试图要得到的同步检测器
    • 等待某个通知时,其他线程发出来通知
    • 处于挂起的线程调用了resume方法

死亡

  • run方法结束
  • 程序抛出了一个未捕获的异常
  • 调用stop方法

多线程

创建

  • 继承Thread
  • 实现Runnable接口(推荐)

留下评论

您的电子邮箱地址不会被公开。