腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
TopCoder
关注程序员技术成长,用简洁的文字,分享复杂的技术。
专栏成员
举报
101
文章
121948
阅读量
25
订阅数
订阅专栏
申请加入专栏
全部文章(101)
java(46)
编程算法(24)
linux(14)
sql(12)
dubbo(12)
node.js(11)
数据库(11)
云数据库 Redis(11)
unix(10)
分布式(10)
javascript(7)
文件存储(7)
容器(7)
自动驾驶(6)
缓存(6)
网络安全(6)
tcp/ip(6)
云数据库 SQL Server(5)
spring(5)
jdk(5)
android(4)
http(4)
存储(4)
jvm(4)
rpc(4)
socket编程(4)
数据分析(4)
bootstrap(3)
react(3)
json(3)
github(3)
容器镜像服务(3)
serverless(3)
hashmap(3)
spring cloud(3)
负载均衡(2)
html(2)
api(2)
apache(2)
mapreduce(2)
消息队列 CMQ 版(2)
开源(2)
https(2)
微服务(2)
kafka(2)
es(2)
对象存储(1)
其他(1)
c 语言(1)
c++(1)
python(1)
c#(1)
bash(1)
access(1)
git(1)
全文检索(1)
负载均衡缓存(1)
NAT 网关(1)
vr 视频解决方案(1)
kubernetes(1)
shell(1)
面向对象编程(1)
spring boot(1)
zookeeper(1)
aop(1)
单元测试(1)
uml(1)
大数据(1)
安全(1)
数据处理(1)
数据结构(1)
nat(1)
execute(1)
interface(1)
oop(1)
submit(1)
substitution(1)
threadpoolexecutor(1)
wait(1)
worker(1)
队列(1)
线程(1)
线程池(1)
搜索文章
搜索
搜索
关闭
Lock Condition的那些事儿
javascript
node.js
下面就以上述示例代码为例来分析下Condition的await和signal流程。对于线程t1来说,执行到await方法时,会添加一个节点到等待队列中,然后释放当前state,唤醒其他线程,最后阻塞自己,等待被唤醒。
luoxn28
2021-04-26
462
0
AQS是如何控制线程的
node.js
数据分析
java
Java中AQS(AbstractQueuedSynchronizer,队列同步器)是构建JUC中锁和其他同步组件的基础组件,我们在日常开发中一般不会直接与AQS打交道。AQS核心功能就2点,通过CAS维护state状态,通过CAS维护同步队列进而控制线程的阻塞唤醒。换句话说就是:
luoxn28
2021-04-08
912
0
如何优雅的让3个线程打印ABC
编程算法
java
数据分析
javascript
node.js
让3个线程依次打印ABC,是一个常见的问题,这是阿里和华为都有考过的面试题。比如题目描述如下:
luoxn28
2021-03-18
2.7K
0
CompletableFuture 原理浅析
编程算法
unix
java
javascript
node.js
Java8新增了CompletableFuture 提供对异步计算的支持,可以通过回调的方式处理计算结果,CompletableFuture 类实现了CompletionStage和Future接口,所以还可以像之前使用Future那样使用CompletableFuture ,尽管已不再推荐这样用了。
luoxn28
2020-12-02
2K
0
深入理解Java线程池
javascript
node.js
linux
ThreadPoolExecutor采取上述步骤的总体设计思路,是为了在执行execute()方法时,尽可能地避免获取全局锁(那将会是一个严重的可伸缩瓶颈)。在ThreadPoolExecutor完成预热之后(当前运行的线程数大于等于corePoolSize),几乎所有的execute()方法调用都是执行步骤2,而步骤2不需要获取全局锁。
luoxn28
2020-11-12
651
0
深入理解Linux VFS和Page Cache
node.js
缓存
linux
unix
数据结构
VFS是虚拟文件系统层(进程与文件系统之间的抽象层),与它相关的数据结构只存在于物理内存当中。其目的是屏蔽下层具体文件系统操作的差异,为上层的操作提供一个统一接口,正是由于VFS的存在,Linux中允许多个不同的文件系统共存。
luoxn28
2020-04-21
3.1K
0
Linux inode 基础概念
node.js
unix
存储
在理解inode之前,先了解下磁盘扇区,磁盘的最小单位,我们都知道,磁盘一个扇区是512个字节。磁盘读写是都是按照块来操作的,一个块一般是4K,也就是连续的8个扇区,以块为单位读写是为了提高性能。
luoxn28
2020-04-21
4.2K
0
Java并发工具那些事儿
编程算法
javascript
node.js
Java并发工具类主要有CyclicBarrier、CountDownLatch、Semaphore和Exchanger,日常开发中经常使用的是CountDownLatch和Semaphore。下面就简单分析下这几个并发工具类:
luoxn28
2020-03-11
424
0
ConcurrentHashMap竟然也有死循环问题?
hashmap
jdk
node.js
感兴趣的小伙伴可以在电脑上运行下,话不说多,先说下问题原因:当执行computeIfAbsent时,如果key对应的slot为空,此时会创建ReservationNode对象(hash值为RESERVED=-3)放到当前slot位置,然后调用mappingFunction.apply(key)生成value,根据value创建Node之后赋值到slow位置,此时完成computeIfAbsent流程。但是上述代码mappingFunction中又对该map进行了一次put操作,并且触发了rehash操作,在transfer中遍历slot数组时,依次判断slot对应Node是否为null、hash值是否为MOVED=-1、hash值否大于0(list结构)、Node类型是否是TreeBin(红黑树结构),唯独没有判断hash值为RESERVED=-3的情况,因此导致了死循环问题。
luoxn28
2019-11-06
1.3K
0
别再问我ConcurrentHashMap了
http
编程算法
hashmap
node.js
以下ConcurrentHashMap以jdk8中为例进行分析,ConcurrentHashMap是一个线程安全、基于数组+链表(或者红黑树)的kv容器,主要特性如下:
luoxn28
2019-11-06
271
0
sentinel 滑动窗口统计机制
node.js
sentinel的滑动窗口统计机制就是根据当前时间,获取对应的时间窗口,并更新该时间窗口中的各项统计指标(pass/block/rt等),这些指标被用来进行后续判断,比如限流、降级等;随着时间的推移,当前时间点对应的时间窗口是变化的,这时会涉及到时间窗口的初始化、复用等。可以说,sentinel上的功能所用到的数据几乎都是滑动窗口统计机制来维护和更新的。
luoxn28
2019-11-06
1.1K
0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档