Integer-parstInt源码解读
parseInt(String s) java的parseInt函数可以将传入的字符串转换成数字,如果传入的字符串不满足要求,例如转换后的值过大,符号位过多,或者包含字母,则会进行异常的抛出 默认的parseInt是会调用一个可以传入进制数的函数
标签
共 20 篇 · 全部标签
parseInt(String s) java的parseInt函数可以将传入的字符串转换成数字,如果传入的字符串不满足要求,例如转换后的值过大,符号位过多,或者包含字母,则会进行异常的抛出 默认的parseInt是会调用一个可以传入进制数的函数
用来做多线程时候的同步,当所有线程都准备好了之后,才进行放行。例如现在有10个线程,在调用了cyclicBarrier的await()方法的线程数量不为10的时候,线程都会处于阻塞状态,只有达到10了才会进行释放,然后阻塞线程被唤醒,程序继续执行
使用方法 CountDownlatch在初始化的时候,需要赋予一个初始值,用来初始化计数器,然后在子线程里面调用countDown方法来进行减一,当计数器的值为0的时候,调用countdownlatch.await()的线程才能够继续往下走,在值为0之前,调用await的线程会一直被阻塞。
AQS为很多的锁实现了底层的功能,就拿ReentrantLock来说,里面的lock就使用了AQS提供的方法 本文是参考的JDK 14的源码,JDK14和JDK8中的源码不太相同,例如去除了几种NODE状态,增加了一些节点的内部静态类 结构图 AQS的结构图 Node的结构图
parseDynamicConfig 读取配置文件,返回QuorumVerifier,包含所有节点的信息 对节点的配置,需要是用server.开头,或者是version开头 拿到QV之后,根据参与者的数量,做一些校验 如果校验通过,在返回的QV里面,包含所有的节点的信息,方便后续进行选举时候的连接 里面有两个核心的东西…
负责选举的相关 选举流程 1. 先判断节点当前的状态,以及是否需要停止 2. 从接收队列里面取出来一个投票,然后校验是否合法 3. 如果选举周期不一致,比较目标投票以及自己投票的信息, 然后选择更新自身的投票信息然后通知别的节点 4. 如果选举周期一致,将选票信息存入到recvset中,以接收到的节点的id为key,根…
对象属性定义
zk里面网络相关的代码,没细看
zxid计算的相关,其中高32位存储Epoch的id,低32位存储事务的计数器
Quorum的验证器,Quorum是一种分布式的机制,用来定义在分布式系统中,某个请求是否能够被确认。 ZK默认的实现是QuorumMaj,也就是超过半数投票者的时候,认为投票通过