![](https://img-blog.csdnimg.cn/direct/fe1d95880e8c4d23b6ff0f20e9250f17.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java多线程
文章平均质量分 85
Java多线程必会知识点
Rcnhtin
这个作者很懒,什么都没留下…
展开
-
面试题:Java 集合类的遍历方式,如何一边遍历 一边删除?
Map 集合的遍历删除方式的思路是通过 entrySet() 方法把 Map 中的每个 entry 节点存放在 Set 集合中,再通过 Set 集合的遍历删除方式进行;Set 集合的遍历方式与 list 集合类似,但是 Set 集合不能使用 传统 for 循环遍历,因为 Set 不具备 get() 方法。,并且 Map 键值对映射关系中,原创 2024-08-07 12:52:39 · 264 阅读 · 0 评论 -
Java 多线程相关面试题
这个是 Java1.7 中采取的技术,Java1.8 中已经不再使用了,简单的说就是把若干个哈希桶分成一个 "段"(Segment),针对每个段分别加锁,目的也是为了降低锁竞争的概率,当两个线程访问的数据恰好在同一个段上的时候,才触发锁竞争;偏向锁不是真的加锁,而只是在锁的对象头中记录一个标记(记录该锁所属的线程),如果没有其他线程参与竞争锁,那么就不会真正执行加锁操作,从而降低程序开销,一旦真的涉及到其他的线程竞争,再取消偏向锁状态,进入轻量级锁状态;原创 2024-05-30 23:54:44 · 504 阅读 · 0 评论 -
Java多线程(04)—— 保证线程安全的方法与线程安全的集合类
其含义为:CAS(M, A, B);M 表示内存,A 和 B 分别表示一个寄存器;如果 M 的值和 A 的值相同,则把 M 和 B 的值交换,如果不同,则无事发生;因为,因此可以基于 CAS 指令,不进行加锁,来编写线程安全代码;CAS 指令操作经过操作系统,JVM 的层层封装,最后 Java 标准库,提供了一些工具类,其中最主要工具类就是由于原子类内部用的是 CAS 实现,所以性能要比加锁实现高很多;在包下;原创 2024-05-30 20:15:33 · 1316 阅读 · 0 评论 -
Java实现线程安全的单例模式
点这里查看线程安全的详细讲解;以上是一个饿汉式实现的单例模式的典型代码;由代码可以看出, 在类加载的时候对象已经创建好了,也就是不管你需不需要使用,都已经存在了,由 getInstance 方法返回这个对象,getInstance 方法直接 return,只涉及到读操作,不涉及写操作,因此饿汉式是线程安全的;原创 2024-05-28 19:32:35 · 1175 阅读 · 0 评论 -
线程池拒绝策略(超详细讲解)
共用四种拒绝策略分别为: AbortPolicy,CallerRunsPolicy,DiscardPolicy,DiscardOldestPolicy 它们都是;下面的 MyRunnable 类用来描述一个任务。原创 2024-05-27 17:20:48 · 1083 阅读 · 0 评论 -
Java多线程(03)—— 锁策略与锁升级
锁的策略是指:在加锁过程中,处理锁冲突的时候的处理方式;原创 2024-05-29 16:08:37 · 1089 阅读 · 0 评论 -
Java多线程(02)—— 线程等待,线程安全
终止线程就是要让 run 方法尽快执行结束,线程等待就是让一个线程等待另一个线程执行结束,再继续执行;实现线程等待的方式有 join 和wait,sleep也算一种吧;产生线程安全问题的原因:原创 2024-05-28 19:34:00 · 1423 阅读 · 0 评论 -
Java 阻塞队列与生产者消费者模型
阻塞队列是⼀种特殊的队列,其也遵守队列 "先进先出" 的原则;阻塞队列是⼀种阻塞队列的⼀个典型应用场景就是 "⽣产者消费者模型",这是⼀种非常典型的开发模型;原创 2024-05-29 11:10:32 · 332 阅读 · 0 评论 -
Java 多线程(01)—— 认识线程和创建线程
运行一个 Java 程序就是跑一个 Java 进程,该进程至少有一个线程即主线程,而 main 方法就是主线程的入口;原创 2024-05-27 15:49:42 · 1115 阅读 · 0 评论