本文主要整理了Java中线程状态及其之间的转化关系
CountDownLatch(倒计数锁存器)
题外话:这片文章是5月5号写的,今天面试的时候提到这个场景,我竟然脑海中有却没敢答出来,还是知识掌握不够牢固啊.现在发出来温故知新一下.
为什么说HashMap是无序的
HashMap和HashSet遍历元素时是无序的,这恐怕是一个常识了,但是你有没有想过为什么是无序的? TreeMap和LinkedHashMap是有序的,那又为什么是有序的呢?
由java system property引起的问题及源码分析
问题的发生过程是这样的
RabbitMQ之微信模版消息发送时间超长问题
问题:通过mq给用户发微信通知,使用的是微信的模版消息,要求该消息具有较高的时效性,当前要给5000个用户发送消息,大概30分钟才能发送完毕,预期的要求是1-2分钟.
Spring定时任务单线程执行之源码分析
spring定时任务@EnableScheduling
默认单线程执行造成了的后果:
假设有两个任务A,B,任务预期开始执行的时间分别是t(a),t(b),它们执行需要花费的时间分别为run_time(a),run_time(b)
homebrew的常见用法
工欲善其事,必先利其器.homebrew是mac上的包管理工具,类似于ubuntu的apt-get,centos的yum.
但是在日常使用的过程中常常搞不懂homebrew的一些命令用法,所以首先需要了解一下homebrew的设计理念.
Semaphore(信号量)
信号量用于控制同一时刻可以同时访问某一资源的最大允许数量,常见的使用场景是连接池。
拿数据库连接池作为使用场景,信号量的初始值代表了连接池的最大数量,外部线程从连接池获取一个连接,可用连接的数量就会减1;
直到连接池可用连接数量为零时,外部线程被阻塞,此时如果有其它线程释放掉了占用的连接,该等待线程即可获得连接。
TCP协议三次握手及四次握手
tcp协议是一套保证信息可靠传输的协议,这是与UDP协议的主要区别。 那么如何在不可靠的网络上保证信息的可靠传输呢?TCP协议是面向连接的,这就是解决之道。 通俗的讲TCP协议在传输信息前,通信的双方需要首先建立可靠的信道,建立连接时需要进行三次握手,而断开连接时需要进行四次握手.