juc包的常用知识点总结

在这里插入图片描述多线程高并发时的工具类在这里插入图片描述
1.线程状态6个
2.wait和sleep的区别 :放开资源/抓住资源在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
1.什么是集群,
2.什么是juc,
3.什么是正向代理,
4.什么是反向代理,
5.什么是负载均衡,
6.什么是线程,
7.什么是进程
8.什么是并发(秒杀)
9.什么是并行(泡面)
10.lock接口和Synchronized多线程编程的区别(
A.lock可以代替S,
B.lock比S更灵活效率更高
C.lock需要手动上锁解锁
);
11.面试题: 有哪几种锁(可重入锁):
12.创建线程的方式(4种):

java8
lambda
多线程
juc
电商会用
java
锁 locks
线程通信:怎么实现?
Linux 和redis。zk命令。用手记住
写自定义表达式
synchronized自动上锁,解锁
lock 需要手动上锁,解锁

New
Runner

在这里插入图片描述
在这里插入图片描述

多线程高并发时的工具类
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

线程起来没起来看操作系统

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

并发:同一时刻发出多次请求(抢手机)redis秒杀,AD
并行:多项任务一起执行(泡面)

redis秒杀,ad压力工具测试出问题
–help 查手册

juc:
lock接口:
Synchronized:多线程编程

在这里插入图片描述
用手机控制空调

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

面试题: 有哪几种锁:

可重复锁:

上锁lock.lock(),解锁lock.unlock()
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

怎么确定只有一个方法

在这里插入图片描述

在这里插入图片描述

default 可以写多个

在这里插入图片描述
lock与synchronized区别:
1.性能好
2.加锁
要让线程按照我们规定顺序输出,怎么做?
线程通信

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
线程是由操作系统起。在这里插入图片描述
在这里插入图片描述
提代码块
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
判断时不能写if
睡后,回来再次判断?? 判断环节出错用while

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为什么会引起虚假唤醒???

在这里插入图片描述
所以要重新判断一下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在多线程中往list加数据:在这里插入图片描述在这里插入图片描述
解决方案:直接说写时复制
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
java8特性
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
30个
在这里插入图片描述
并发修改错误

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

写时复制-(redis),持久化rdb,aof
bjcf 。cf

在这里插入图片描述
CopyOnWriteArrayList

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以后用JUC下的类:
讲的就是面试官问的,有时间多敲,敲

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
多线程锁?
Lock8
8个题考的就是静态锁,一般锁之间的区别:
3个工具类
静态锁:锁定的是Class对象,和几个实体(手机)对象无关。

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
怎么认识他:中间人
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把复杂任务提出来
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
put | get

说话算话

在这里插入图片描述
Volatile易变

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可重复的读写锁

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
阻塞队列用到线程池的等候区
在这里插入图片描述
在这里插入图片描述
工作中3个都不用,手写线程池
在这里插入图片描述

在这里插入图片描述
问几个回答几个
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现线程池:
在这里插入图片描述

固定,单一,缓存在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
7个参数:
corePoolsize核心线程数
maxiMumPoolSize最大线程数
keepAliveTime休闲的线程保存的时间
unit单位
workQueue阻塞的队列
threadFactory线程工厂
handler 拒绝策略

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

惰性加载:::

在这里插入图片描述
为什么自己手写线程池
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
异步回调???
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的JUC(java.util.concurrent)提供了一些并发编程中常用的类,这些类可以帮助我们更方便地实现多线程编程。以下是一些常用JUC类及其解析: 1. CountDownLatch(倒计时器) CountDownLatch是一个计数器,它允许一个或多个线程等待一组事件发生后再继续执行。它最基本的方法是await()和countDown()。await()方法会阻塞当前线程,直到计数器的值为0;countDown()方法会将计数器的值减1。 2. CyclicBarrier(循环屏障) CyclicBarrier是一个同步工具,它允许一组线程等待彼此达到一个公共屏障点。当所有线程都到达这个屏障点时,它们才能继续执行。CyclicBarrier可以被重复使用,当所有线程都执行完后,它会自动重置。 3. Semaphore(信号量) Semaphore是一种计数器,它维护了一组许可证。当调用acquire()方法时,线程会阻塞,直到许可证可用;而当调用release()方法时,许可证的数量会增加。Semaphore可以用于限制同时访问某些资源的线程数量。 4. ReentrantLock(重入锁) ReentrantLock是一个可重入的互斥锁。它和synchronized关键字类似,但是提供了更多的灵活性和功能。ReentrantLock中最常用的方法是lock()和unlock(),它们分别用于获取锁和释放锁。 5. ConcurrentHashMap(并发哈希表) ConcurrentHashMap是一个线程安全的哈希表实现。它和HashMap类似,但是支持并发访问。ConcurrentHashMap中的所有方法都是线程安全的,而且它的性能比Hashtable和同步的HashMap要好。 6. Executors(线程池) Executors是一个工厂类,用于创建各种类型的线程池。它提供了一些静态方法,例如newFixedThreadPool()、newCachedThreadPool()、newSingleThreadExecutor()等,可以方便地创建各种类型的线程池。 7. Future(异步计算) Future是一个接口,它表示一个异步计算的结果。Future可以通过get()方法获取计算结果,或者通过cancel()方法取消计算。Future还可以用于实现一些高级的并发操作,例如等待一组异步计算全部完成后再继续执行。 总的来说,JUC提供了很多有用的类和工具,可以帮助我们更方便地实现多线程编程,提高程序的并发性能和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值