
java并发编程
文章平均质量分 52
菠萝科技
"Java并没有衰落.而是刚刚开始"
展开
-
java: synchornized底层的实现原理monitor,它的底层实现又是什么
牵涉到:jvm,c++,操作系统等,如何串起来呢?对只懂java,不懂c++的同学来说,monitor底层是什么,是基于mutex么原创 2021-07-25 15:14:06 · 509 阅读 · 2 评论 -
java 虚拟线程Loom/纤程/轻量级线程和异步编程Future,哪个是未来?
Loom项目的开始于2017年底,现在来看,虚拟线程(纤程/轻量级线程)和异步谁是未来呢?我的答案是:虚拟线程。先写个目录。1 开发难度,对已有项目的影响2 xxxx的态度3 项目官方的想法,为什么要开发虚拟线程项目4 对已有协程框架框架市场的冲击...原创 2021-04-27 10:32:33 · 991 阅读 · 2 评论 -
concurrentHashmap 中 computerIfAbsent 方法的bug
1为了保证原子性,对相同 key 进行修改时,可能造成线程阻塞。(详细参见:MyBatis 3.5.X 在 JDK8 中的性能问题)The entire method invocation is performed atomically, so the function is applied at most once per key. Some attempted update operations on this map by other threads may be blocked while.原创 2021-04-27 08:01:57 · 1508 阅读 · 0 评论 -
图解Linux网络包接收过程
作者:张彦飞链接:https://zhuanlan.zhihu.com/p/256428917来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解的方式,来深度理解一下在Linux下网络包.转载 2020-09-21 22:24:11 · 3264 阅读 · 0 评论 -
KeyDB介绍:redis的多线程版本,性能提升一倍
1 什么是KeyDB?KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如直接备份到AWS S3。KeyDB与Redis协议,模块和脚本保持完全兼容性。这包括脚本和事务的原子性保证。由于KeyDB与Re...原创 2020-01-16 21:31:29 · 2190 阅读 · 0 评论 -
【基本功】不可不说的Java“锁”事
作者:美团技术团队链接:https://zhuanlan.zhihu.com/p/50098743著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中...转载 2019-03-11 23:56:07 · 307 阅读 · 2 评论 -
浅析Java的线程调度策略
原文链接:https://www.jianshu.com/p/3f6b26ee51ce作者:杨兴强原文来源:开点工作室(ID:kaidiancs)一.从一个例子开始看着Java线程执行起来的那种任性和随意,我们不免会问:是谁在主导Java线程的执行?它按照什么样的策略来调度Java线程?本文将带着这样的问题,探讨Java线程的调度机制。程序的问题还是先从代码说起吧,下面是一个广泛...转载 2019-03-13 23:52:34 · 4015 阅读 · 3 评论 -
阿里开源分布式事务解决方案 Fescar 全解析
本文转自:阿里开源分布式事务解决方案 Fescar 全解析 - 阿里云云栖社区的文章 - 知乎 https://zhuanlan.zhihu.com/p/55958530摘要:广为人知的阿里分布式事务解决方案:GTS(Global Transaction Service),已正式推出开源版本,取名为“Fescar”,希望帮助业界解决微服务架构下的分布式事务问题,今天我们一起来深入了解。...转载 2019-02-12 22:52:29 · 369 阅读 · 1 评论 -
epoll编程,单epoll+线程池?线程池+epoll?nginx实现高并发的原理?
草稿未验证1 epoll编程,如何实现高并发服务器开发?- 知乎 https://www.zhihu.com/question/21516827/answer/55127881nginx 多进程网络编程的巅峰memcached 多线程网络编程的巅峰redis单线程网络编程的巅峰~~2 为什么说 event-loop 在 IO 密集型场景中比线程模型更高效? https:/...原创 2019-01-03 00:47:41 · 1472 阅读 · 1 评论 -
IO 多路复用是什么意思?
转自:https://www.zhihu.com/question/321630051 IO 多路复用是什么意思? - 罗志宇的回答 - 知乎 https://www.zhihu.com/question/32163005/answer/55772739这个还是很好说清楚的。假设你是一个机场的空管, 你需要管理到你机场的所有的航线, 包括进港,出港, 有些航班需要放到停机坪等待,有些航...翻译 2019-01-03 00:36:26 · 5129 阅读 · 2 评论 -
Does the new memory model fix the "double-checked locking" problem?
几篇合集。1 单例模式“双重检查锁定Double-Checked Locking”线程安全问题https://blog.youkuaiyun.com/wabiaozia/article/details/847238992 主题:用happen-before规则重新审视DCLhttps://blog.youkuaiyun.com/wabiaozia/article/details/847274073 D...原创 2018-12-05 17:10:10 · 367 阅读 · 0 评论 -
当发现某个java线程占CPU或内存非常高的时候,你如何定位?
链接: http://jingyan.baidu.com/album/4f34706e3ec075e387b56df2.html?picindex=3 高手是怎么使用jstack精确找到异常代码的原创 2017-02-06 14:46:53 · 4116 阅读 · 0 评论 -
什么时候使用CountDownLatch(zookeeper分布式锁中用过)
原文链接:http://www.importnew.com/15731.html原创 2017-04-04 15:13:50 · 3437 阅读 · 1 评论 -
多线程系列1:入门
1 源码介绍Thread 中run代码 @Override public void run() { if (target != null) { target.run(); } }target对象是指 /* What will be run. */ private Runnable targe原创 2017-05-29 11:50:52 · 467 阅读 · 0 评论 -
Java并发编程与技术内幕:线程池深入理解
几种不同的ExecutorService线程池对象:Java类库提供了许多静态方法来创建一个线程池:a、newFixedThreadPool 创建一个固定长度的线程池,当到达线程最大数量时,线程池的规模将不再变化。b、newCachedThreadPool 创建一个可缓存的线程池,如果当前线程池的规模超出了处理需求,将回收空的线程;当需求增加时,会增加线程数量;线程池规模无限制。c、newSing...转载 2017-05-31 21:15:55 · 564 阅读 · 0 评论 -
Java并发编程与技术内幕:Callable、Future、FutureTask、CompletionService
在上一文章中,笔者介绍了线程池及其内部的原理。今天主要讲的也是和线程相关的内容。一般情况下,使用Runnable接口、Thread实现的线程我们都是无法返回结果的。但是如果对一些场合需要线程返回的结果。就要使用用Callable、Future、FutureTask、CompletionService这几个类。Callable只能在ExecutorService的线程池中跑,但有返回结果,也可以...转载 2017-05-31 22:09:59 · 721 阅读 · 0 评论 -
java并发相关概念
推荐博客:http://blog.youkuaiyun.com/column/details/javahhighconcurrence.html1 博客中的概念区别联系:java:多线程基础之Runnable、Callable与Thread2 用submit()线程执行完成标志:http://bbs.youkuaiyun.com/topics/330008721 future.get()==null3 http://bl...原创 2016-10-12 10:44:37 · 494 阅读 · 2 评论 -
子线程运行10次后,主线程运行100次,子主交叉运行。如此循环50次。
很多同学写这个代码时容易写迷糊。其实只要经过下面几个步骤的分析,你会发现这个问题很简单。1 理清循环50次和子线程运行10次,主线程运行100次,不要交叉在一起循环50次可以看作是调用方操作,调用方可以选择操作50次,也可以选择操作100次。子线程和主线程可以看作被调用方接口,调用方只要调用我了,我就执行xxx次(子线程运行10次,主线程运行100次)。2 注意一点: 子线程运行第一个十次完...原创 2018-03-12 22:48:47 · 664 阅读 · 0 评论 -
java多线程:结合多线程交替打印10次abc实例,对wait/notify使用的彻底理解
接上篇:http://blog.youkuaiyun.com/wabiaozia/article/details/79429585有个朋友看点击打开链接 里的三个线程“A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC。” 这个问题的代码,有点不太理解,让我给看下。不理解的原因也很简单,就是对wait和notify理解不深,遇到复杂点的场景会迷糊。对于并发相...原创 2018-03-13 00:32:05 · 3907 阅读 · 1 评论 -
单例模式“双重检查锁定Double-Checked Locking”线程安全问题
几篇合集。1 单例模式“双重检查锁定Double-Checked Locking”线程安全问题https://blog.youkuaiyun.com/wabiaozia/article/details/847238992 主题:用happen-before规则重新审视DCLhttps://blog.youkuaiyun.com/wabiaozia/article/details/847274073 D...翻译 2018-12-02 18:00:39 · 4541 阅读 · 4 评论 -
主题:用happen-before规则重新审视DCL
几篇合集。1 单例模式“双重检查锁定Double-Checked Locking”线程安全问题https://blog.youkuaiyun.com/wabiaozia/article/details/847238992 主题:用happen-before规则重新审视DCLhttps://blog.youkuaiyun.com/wabiaozia/article/details/847274073 D...原创 2018-12-02 21:42:35 · 1241 阅读 · 2 评论 -
并发容器之CopyOnWriteArrayList
原文链接:https://juejin.im/post/5aeeb55f5188256715478c21并发容器之CopyOnWriteArrayList 1. CopyOnWriteArrayList的简介java学习者都清楚ArrayList并不是线程安全的,在读线程在读取ArrayList的时候如果有写线程在写数据的时候,基于fast-fail机制,会抛出Co...翻译 2018-12-01 19:05:09 · 350 阅读 · 3 评论 -
深入分析 ThreadLocal 内存泄漏问题
原文链接:https://juejin.im/post/5aeeb3e8518825672f19c52c1. 造成内存泄漏的原因?threadLocal是为了解决对象不能被多线程共享访问的问题,通过threadLocal.set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中,这样每个线程使用自己的对象实例,彼此不会影响达到隔离的作用,从而就解决了对象在被共享访问带来...转载 2018-12-01 19:19:22 · 430 阅读 · 1 评论 -
JAVA 多线程对成员变量与局部变量的影响
1 http://www.cnblogs.com/eason-chan/p/3684194.html原创 2016-08-29 09:21:45 · 2445 阅读 · 0 评论