JUC并发学习笔记

JUC概述

JUC包简介

        J.U.C并发包,即java.util.concurrent包,JUC就是java.util.concurrent包的取首字母的简称,是用于处理线程的工具包,也是JDK的核心工具包之一,是JDK1.5之后,由Doug Lea实现并引入。

整个java.util.concurrent包,按照功能可以大致划分如下:

  • juc-locks 锁框架
  • juc-atomic 原子类框架
  • juc-sync 同步器框架
  • juc-collections 集合框架
  • juc-executors 执行器框架

线程和进程

        进程(Process)

                进程就是在cpu开辟一块空间运行程序,然后里面放很多分成很多管道用来让程序的功能可以运行 一个进程可以开辟多个线程 并发执行不同的功能

        线程(thread)

                线程就是程序的一小块功能实现的空间,开辟可以让程序功能有实现的空间

                总而言之 : 进程是资源分配的最小单位,线程是CPU调度的最小单位

 线程的六种状态(可以通过线程状态枚举Thread.State来查看)                

  • 一、新建状态(NEW)
  • 二、运行状态(RUNNABLE) 就绪状态(READY) 其他状态->就绪 ...
  • 三、阻塞状态(BLOCKED)
  • 四、等待状态(WAITING) 运行->等待 等待->就绪(过时不候)
  • 五、超时等待状态(TIMED_WAITING) 运行->超时等待 超时等待->就绪(不见不散)
  • 、消亡状态(TERMINITED)

wait和sleep方法

        wait和sleep的区别

wait方法

wait方法是属于object 类 会释放锁 同时需要捕获InterruptedException 异常  同时使用wait方法必须放在 synchronized 块(调用他的前提是当前线程占有锁)里面

sleep 方法

sleep 方法是属于thread类 让线程睡眠达到秒数之后重新启动,继续往下执行,在任何地方都能使用,但同时也需要捕获 InterruptedException 异常。

两种方法都可以被interrupted方法中断

并发和并行

串行模式

        任务一个一个执行 从前往后 类似一个窗口银行牌号

并行模式

        在处理一个事务的时候合理调用其他的资源处理其他事务 比如上厕所敲代码学习

一般依赖于多个cpu 就是你有两只手,还有emm你懂的,可以同时运行

如果是单核的话其实就是一个厨师在烧水的同时他去切菜 等烧水完成菜也切好了 他是不断切换的切换快了看起来就像是同时运行的

 并发

        是指很多个对象同时请求一个资源 比如 春节抢票 秒杀活动

并行

        多项工作同时运行最后汇总

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值