![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发多线程
文章平均质量分 94
Java并发多线程
攻城狮不是猫
公众号:攻城狮不是猫,分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、 云原生、大数据与云计算技术和渗透技术。另外,还会分字各种视频资源,面试题和面试技巧。
展开
-
Java中的10个单例模式访问问题
Singleton设计模式是您将在Java应用程序中看到的最常见的模式之一,并且它也在核心Java库中大量使用。来自Singleton模式的问题在Java访谈中非常常见,并且对如何实现Singleton模式有着很好的了解。这也是我最喜欢的设计模式面试问题之一,并且有很多有趣的后续细节,这不仅仅是检查设计模式的知识,而且还检查编码,多线程方面这是非常重要的,而为实际应用工作。在这篇文章中,列出了Ja...翻译 2018-03-07 21:50:05 · 922 阅读 · 0 评论 -
什么是多线程中的竞争条件 - Java中的2个示例
什么是多线程中的竞争条件 - Java中的2个示例Java中的竞态条件是一种并发错误或问题,它是在您的程序中引入的,因为您的程序在多个线程同时并行执行,因为Java是一种多线程编程语言,因此在Java中竞争条件的风险更高要求清楚了解导致竞赛状况的原因以及如何避免这种情况。反正竞争条件只是é 危险或风险在Java中使用多线程的呈现就像在Java中的僵局。当两个线程在没有正确同步的同一对象上操作并且操...翻译 2018-03-07 21:37:19 · 4066 阅读 · 0 评论 -
如何在Java代码示例中停止线程
如何在Java代码示例中停止线程线程是Java中重要的类之一,多线程是最广泛使用的一个特性,但是没有明确的方法来阻止Java中的Thread。早些时候在Thread类中存在一种停止方法,但是由于一些安全原因,Java不赞成该方法。默认情况下,当run()方法的执行正常结束或由于任何Exception时,Thread停止。在本文中,我们将使用布尔状态变量或标志来停止Java中的Thread。使用一个...翻译 2018-03-07 21:28:41 · 273 阅读 · 0 评论 -
50道Java线程面试题
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式...原创 2018-02-23 17:28:07 · 149 阅读 · 0 评论 -
如何避免Java线程中的死锁
如何避免Java中的死锁?是多线程赛季味道的问题之一,在高级别上提出了更多问题并带有大量后续问题。尽管问题看起来非常基本,但大部分开发人员一旦开始深入研究就会陷入困境。面试问题从“ 什么是死锁? ” 开始,答案很简单,当两个或更多线程正在等待对方释放锁定并在无限时间卡住时,情况就称为死锁。它只会发生在多任务的情况下。你如何检测Java中的死锁?虽然这可能有很多答案,但是我的版本首先会查看代码,如果...翻译 2018-02-24 13:31:47 · 244 阅读 · 0 评论 -
源码|并发一枝花之BlockingQueue
为了方便讲解,我调整了部分方法的顺序,还增加了注释辅助说明。阻塞方法BlockingQueue#put()和BlockingQueue#take():如果入队(或出队,下同)失败(如希望入队但队列满,下同),则等待,一直到满足入队条件,入队成功。非阻塞方法BlockingQueue#offer()和BlockingQueue#poll(),及它们的超时版本:非超时版本是瞬时动作,如果入队当前入队失败,则立刻返回失败;原创 2024-03-12 09:51:30 · 629 阅读 · 0 评论 -
源码|使用FutureTask的正确姿势
线程池的实现核心之一是FutureTask。在提交任务时,用户实现的Callable实例task会被包装为FutureTask实例ftask;提交后任务异步执行,无需用户关心;当用户需要时,再调用FutureTask#get()获取结果——或异常。随之而来的问题是,本文讨论使用FutureTask的正确姿势。JDK版本:oracle java 1.8.0_102今天换个风格。原创 2024-03-13 23:22:46 · 716 阅读 · 0 评论 -
源码|批量执行invokeAll()&&多选一invokeAny()
第一个任务是必将被执行的,其他任务按照迭代器顺序。原创 2024-03-17 00:15:12 · 757 阅读 · 0 评论 -
Java并发-并发模型
可以使用不同的并发模型来实现并发系统。一并发模型指定的系统协作线程如何完成他们给予的任务。不同的并发模型以不同的方式拆分任务,线程可以以不同的方式进行通信和协作。本并发模型教程将更深入地介绍撰写本文时(2015年至2019年)使用的最受欢迎的并发模型。原创 2024-03-08 14:16:03 · 720 阅读 · 0 评论 -
源码|从源码分析非线程安全集合类的不安全迭代器
上面看到了非线程安全集合类的迭代器是不安全的,但在单线程的环境下,这些集合类在性能、维护难度等方面仍然具有不可替代的优势。那么该如何在兼具一定程度线程安全的前提下,更好的发挥內建集合类的优势呢?使用非线程安全的集合时(实际上对于某些“线程安全”的集合类,其迭代器也是线程不安全的),迭代过程中需要用户自觉维护,不修改该集合。应尽可能明确线程安全的需求等级,做好一致性、活跃性、性能等方面的平衡,再针对性的使用相应的集合类。原创 2024-03-12 09:51:12 · 731 阅读 · 0 评论 -
条件队列大法好:wait和notify的基本语义
条件队列是我们常用的轻量级同步机制,也被称为“wait+notify”机制。但很多刚刚接触并发的朋友可能会对wait和notify的语义和配合过程感到迷惑。今天从join()方法的实现切入,重点讲解wait()方法的语义,简略提及notify()与notifyAll()的语义,最后总结二者的配合过程。本篇的知识点很浅,但牢固掌握很重要。后面会再写一篇文章,介绍wait+nofity的用法,和使用时的一些问题。原创 2024-03-16 21:18:21 · 1029 阅读 · 0 评论 -
条件队列大法好:使用wait、notify和notifyAll的正确姿势
条件队列的使用是并发面试中的一个好考点。猴子第一次遇到时一脸懵逼,叽里咕噜也没有答上来,现在写文章时才发现自己根本没有理解。如果本文有哪里说错了,希望您能通过简书或邮箱联系我,提前致谢。挖坑系列——以后讲一下wait、notify、notifyAll的实现机制。原文地址:条件队列大法好:使用wait、notify和notifyAll的正确姿势。原创 2024-03-17 00:15:33 · 1036 阅读 · 0 评论