1、什么是juc

1、juc简介

在java中,线程部分是重点,juc就是java.util.concurrent工具包的简称。这是一个处理线程的工具包,从jdk1.5开始出现

 2、进程与线程

进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程是资源分配的最小单位

线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行。线程是程序执行的最小单位

3、线程的状态

3.1 线程状态枚举类

Thread.State

public enum State {
       
        NEW,//新建

        RUNNABLE,//可执行,准备就绪

        
        BLOCKED,//阻塞

        WAITING,//无条件等待,直到执行

        TIMED_WAITING,//根据设定时间等待,超过时间就放弃执行

        TERMINATED;//终结
    }

3.2 wait/sleep的区别

  1. sleep是Thread的静态方法,wait是Object的方法,任何对象实例都可以调用
  2. sleep不会释放锁,它也不需要占用锁。wait会释放锁,但调用它的前提是当前线程占有锁(即代码要在synchronized中)
  3. 他们都可以被interrupted()方法中断(线程中断方法)

4、并发与并行

并发: 同一时刻多个线程在访问同一个资源,多个线程对一个点
        例子:春运抢票 电商秒杀...
并行: 多项工作一起执行,之后再汇总
        例子:泡方便面,电水壶烧水,一边撕调料倒入桶中

5、管程(也就是锁)

管程 (monitor) 是保证了同一时刻只有一个进程在管程内活动 , 即管程内定义的操作在同
一时刻只被一个进程调用 ( 由编译器实现 ). 但是这样并不能保证进程以设计的顺序执行
JVM 中同步是基于进入和退出管程 (monitor) 对象实现的,每个对象都会有一个管程
(monitor) 对象,管程 (monitor) 会随着 java 对象一同创建和销毁
执行线程首先要持有管程对象,然后才能执行方法,当方法完成之后会释放管程,方
法在执行时候会持有管程,其他线程无法再获取同一个管程

6、用户线程与守护线程

用户线程 : 平时用到的普通线程 , 自定义线程
守护线程 : 运行在后台 , 是一种特殊的线程 , 比如垃圾回收
当主线程结束后 , 用户线程还在运行 ,JVM 存活
如果没有用户线程 , 都是守护线程 ,JVM 结束
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值