Java笔记
ljheee
如果对你有收获,欢迎关注公众号 架构道与术(ToBeArchitecturer) ,获得最新干货。https://url.cn/5wpXFoL
展开
-
Phaser多任务协同的神器
上篇 CyclicBarrier多任务协同的利器 我们借助部门TB团建的例子,一步步分析了 CyclicBarrier 多线程协调的功能。并在文章末尾,留出思考:实际部门TB活动中,可能有人白天有事,不能参加公园的活动、但晚上会来聚餐;有人白天能参加,晚上不能参加;并且公园的门票,聚餐费用,因参与人数不同,又有不同,需要统计各阶段的参与人数,以此计算经费。需求升级后,如何实现呢?CyclicBarrier 能完成吗?其实在上篇文章中,我们分析了初版TB需求的任务特点,其中之一就是参与者的数量,是确原创 2020-06-28 15:08:45 · 852 阅读 · 0 评论 -
CyclicBarrier的克星—BrokenBarrierException
上篇 CyclicBarrier多任务协同的利器 我们借助部门TB的例子,一步步分析了 CyclicBarrier 多线程协调的功能。CyclicBarrier 功能强大的同时,意味着提供了更多的API,并且在使用过程中,可能有一些注意点。今天就来聊聊 BrokenBarrierException,从名字就能看出,是“屏障被破坏异常”,屏障被破坏时,CyclicBarrier 的期望功能就不能完成,甚至导致程序异常;BrokenBarrierException 可谓是 Cyclic原创 2020-06-17 15:17:50 · 1822 阅读 · 0 评论 -
CyclicBarrier多任务协同的利器
疫情逐渐好转,部门也有半年多没有TB团建了,并且金三银四,部门又招了一波新人;leader让你组织一次TB:周六上午,大家先到公司集合,然后一起去朝阳公园玩,最后一起去餐厅聚餐,然后回家。为了体现团队集体意识,在每次开启新项目时,需要所有人一起开始行动(不能早来的人都把东西吃光了吧~),并且每个阶段活动完成后,需要统计人数、向上汇报。这个场景,如何借助JUC并发工具来实现呢?我们先来梳理一下,任务特点:很显然,每次开启新项目时,需要所有人一起开始行动 这是个多任务相互等待,直到所有人都到达一个点原创 2020-06-15 19:10:35 · 1314 阅读 · 0 评论 -
CountDownLatch的两种常用场景
CountDownLatch的两种使用场景先来看看 CountDownLatch 的源码注释;/** * A synchronization aid that allows one or more threads to wait until * a set of operations being performed in other threads completes. * * @since 1.5 * @author Doug Lea */public class CountDownLa原创 2020-06-14 15:36:26 · 945 阅读 · 0 评论 -
终于有人把Java内存模型(JMM)说清楚了
网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。为什么要有内存模型在介绍Ja...原创 2019-12-18 17:29:30 · 673 阅读 · 0 评论 -
网络编程
IP地址:逻辑地址,可变MAC:物理地址,内嵌芯片[主板]里,不可变。ServeClient A 上线,在服务器登记IP(把自己新的地址告诉服务器),并获得在线好友的IP; 客户端每个都是独立的,服务器唯一的一个。点到点----连接聊天,绕过服务器,服务器负担小。XMPP 即时通信 mima/netty 网络通信框架重...2016-05-15 14:58:55 · 108 阅读 · 0 评论 -
Exception in thread "main" java.lang.NoClassDefFoundError:org/slf4j/LoggerFactor
错误:java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 解决方案:导入slf4j-api-1.7.21.jar 和slf4j-nop-1.7.21.jar。2016-10-06 21:52:14 · 1786 阅读 · 1 评论