
多线程
Programmie
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ConcurrentHashMap:学习总结
ConcurrentHashMapJDK 1.7JDK 1.7 是一个Segment数组总览:Segment内部有一个HashEntry[] table 的字段Segment数组大小默认是16Segment由DEFAULT_CONCURRENT_LEVEL决定,去找比DEFAULT_CONCURRENT_LEVEL大的2次幂HashEntry由DEFAULT_CONCURRENT_LEVEL和initialCapacity决定。通过两者相除后再向上取整每个Segment对象内原创 2020-07-30 11:43:11 · 398 阅读 · 1 评论 -
JMM 理解
JMM 理解read:将主内存中的数据读取出来load:紧跟在read之后,将数据写入到线程内部的私有数据副本中use:线程内部的方法将调用数据副本中的数据进行操作assign:如果数据副本的值在方法中发生改变,那么又会调用assign将其复制给数据副本中的对应变量store:会先在主内存中开辟一块空间,将变量值传入到主内存中write:在这一步中才会将数据值真正的写入到主内存中lock:将一个主内存中的变量设置会线程私有unlock:将一个线程私有的变量释放,可以令其他线程访问到原创 2020-06-15 09:27:35 · 224 阅读 · 0 评论 -
记录一下ktor client的一个坑:java.net.BindException: Address already in use: no further information
记录一下用ktor client的时候遇到的一个坑。这是我的代码@Scheduled(fixedRate = 10L)//这里httpClient是ktor client,另一个client是OPC UA milo的client private fun collectingCoordData() = runBlocking { val time = measureTimeMillis { val absoluteValues = async(Dis原创 2020-05-20 14:53:24 · 1621 阅读 · 0 评论 -
ktor client:支持协程的HTTP工具库
最近用kotlin开发服务端,用了很多库,像Spring boot的RestTemplate,okhttp还有retrofit,觉得retrofit很好用。但是,在用retrofit来实现协程的时候,遇到了一个问题如图所示,提示Inappropriate blocking method call,说这种协程的使用方式是不合适的。我在Stack Overflow上搜了一下,发现如下解答也就是说这个execute方法会阻塞当前线程,因此不能令线程挂起,导致协程失效,而这个execute的原方法中:@O原创 2020-05-19 19:50:20 · 3121 阅读 · 0 评论 -
Netty 出站入站机制详解
前段时间在B站学习Netty,讲到出站入站的机制时一直没搞明白到底是怎么弄的,直到开始讲源码部分时才终于搞明白。先来看看Netty官方有关出站入站机制的解释:按照图片的理解,则是在通道中,每次出现读事件时,会从头至尾依次调用Inbound即入站方法处理;而触发写事件时,则会从尾到头依次调用outbound即出站方法处理。这里会给人一种错觉,那就是netty在内部维护了两个单向链表实现出站...原创 2020-05-03 16:41:51 · 4451 阅读 · 4 评论 -
Java多线程:对于Thread.join()的理解
以前一直搞不明白Thread当中的join到底是怎么用的,今天自己写了个小例子过后总算是有点眉目。先来看JDK官方文档对于join是怎么描述的:// 等待该线程终止。public final void join() throws InterruptedException还有几个重载的方法就不多赘述,这样描述其实挺让人难懂的,所以还是看例子吧package concurrent;im...原创 2020-05-02 10:05:58 · 170 阅读 · 0 评论