JAVA线程

Java 线程

线程创建的两种方式

1、Runable 、 Thread

线程生命周期

新建 ——》就绪、运行、阻塞、死亡生命周期

控制线程状态

1、join,谁调用线程join,谁就等待该线程执行完才执行
2、后台线程
3、sleep,
4、yield
5、改变优先级

线程同步

同步监视器:任何线程进入同步代码块或同步方法之前,必须先获得对同步监视器的锁定
在这里插入图片描述
1、同步代码块
obj就是同步监视器
2、同步方法
同步监视器是this,就是该对象本身

  1. 更细粒度的同步锁——LOCK和Condition
    在这里插入图片描述
线程协调之主动等待和被动唤醒

[海盗开宝箱的比喻]

  1. wait(),该线程放弃同步监视器的锁定,让该线程等待,直到其他线程调用该同步监视器的notify()方法或notifyAll()。
  2. notify(),随机唤醒在此同步监视器上等待的线程。该线程执行wait()后才可以执行被唤醒的线程。
  3. notifyAll()唤醒在此同步监视器上等待的线程,只有当前线程wait()后才能唤醒

Callable和Future

Callable 接口 可看做 Runable增强版

  1. call()方法可以有返回值
  2. call()可以声明抛出异常
    Future用来设计成接受call()的返回值,并控制Callable的执行
    增强线程

线程池

线程池的创建、使用、执行任务

  1. 创建
    在这里插入图片描述
  2. 使用
    在这里插入图片描述
    在这里插入图片描述
  3. 使用线程池执行线程任务的步骤
    在这里插入图片描述

线程相关类

  1. ThreadLocal类
    线程安全类,相当于每个线程都有属于自己现成的副本,可把ThreadLocal看做一个桶,每个线程只能操作自己放进去的东西,看不到别的线程存放的东西。
    在这里插入图片描述
    使用
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值