概念

  • 程序:指令集 (静态)
  • 进程:操作系统调度程序,一个程序就是一个进程 (动态)
  • 线程:在进程内的多条执行路径,在一个复杂程序内发现一条路径不能满足要求,另开辟多条路径来执行(线程其实就是一个进程里的多条路径,也叫做轻量级进程)
  • 多进程:操作系统同时运行多个任务,如,eclipse、PPT
  • main方法叫主进程

创建线程

一、继承Thread+重写run()

启动:创建子类对象+对象.start()


二、implements Runnable+run()

启动:使用静态代理

1. 创建真实角色
2. 创建代理角色Thread(引用)
3. 代理角色.start()

推荐使用接口:推荐使用Thread静态代理

  1. 避免单继承的局限性
  2. 方便共享资源


三、实现Callable接口

状态

  • 死亡状态:未在给定时间片内完成程序则被挂起,进入就绪状态;完成则进入死亡状态。
  • 死亡状态如何停止线程:
    1. 自然终止:线程体正常执行完毕。
    2. 外部干涉:
      1. 线程类中:定义线程体使用的标识
      2. 线程体使用该标识
      3. 提供对外方法改变该标识:set、stop等
      4. 外部根据条件调用该方法
  • 阻塞
    1. join:合并进程
    2. yield:暂停自己执行别人 static (写在谁的线程体内暂停谁)
    3. sleep:static 不释放锁

      基本信息

      同步

      一、概念:也称为并发:赞成多个线程对同一个资源进行访问,那么就必须确保资源安全,所以加入同步确保线程安全。synchronized 同步的(加锁,使用该关键字声明即获得该方法的锁)

      二、死锁:过多的同步容易造成死锁

      总结