多线程(实现Runnable和继承Thread)

  • 程序 : 保存在硬盘上的静态文件
  • 进程 : 在内存中处理运行状态的程序, 有生命周期, 一个程序可以启动多个进程(实例), 进程之间不可以直接通信
  • 线程 : 进程中的一个子任务, 线程也有生命周期, 一个线程对应一个运行栈, 线程之间通信方便
  • 使用Thread类来描述, 创建一个Thread对象, 就相当于创建线程对象, 一个线程对象内部包含一个栈.
  • 创建并启动线程的方式 1 : 实现的方式
    1. 写一个具体类, 让这个类实现Runnable接口, 并实现run方法, 这个run方法就相当于线程的入口(线程体)
    1. 创建这个类的对象, 并以它为实参再创建 Thread对象, 这个Thread对象就是线程对象
    1. 调用Thread对象的start方法启动子线程
  • 创建并启动线程的方式2 : 继承的方式
    1. 写一个具体类, 让这个类继承Thread类, 并重写run方法, 这个run方法就是线程的入口(线程体)
    1. 创建这个类的对象, 就相当于创建了一个线程对象(建了一个新栈)
    1. 调用对象的start方法, 激活栈, 并压入run方法
  • 线程状态有5种
  • 新建 ( new Thread())
  • 就绪 (start()) -> 失去CPU执行权, 解除阻塞后
  • 运行 (获取CPU执行权)
  • 阻塞 (sleep, join, wait, 同步)
  • 死亡 (run结束)
  • 线程分类 :
  • 守护线程 : 为用户线程服务的, 如果用户线程死掉, 守护线程也死, 在start()前通过setDeamon()设置
    设置
  • 用户线程 : 用户线程, 被守护线程守护的. 进程中只有还有一个用户线程, 进程就不会结束.
  • 主线程永远无法设置为守护线程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值