腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
TopCoder
关注程序员技术成长,用简洁的文字,分享复杂的技术。
专栏成员
举报
101
文章
121956
阅读量
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)
搜索文章
搜索
搜索
关闭
Java读写锁浅析
java
c#
数据分析
Java读写锁,也就是ReentrantReadWriteLock,其包含了读锁和写锁,其中读锁是可以多线程共享的,即共享锁,而写锁是排他锁,在更改时候不允许其他线程操作。读写锁底层是同一把锁(基于同一个AQS),所以会有同一时刻不允许读写锁共存的限制。
luoxn28
2021-05-13
2.9K
0
Java并发组件浅析
java
数据分析
http
Java并发相关组件或者技术包括:线程、线程池、阻塞队列、Future/FutureTask、Lock/Condition、Lock、AQS(队列同步器)、并发工具类、原子更新类、LockSupport、Unsafe等,下面我们以总体视角来看下这些组件之间的依赖关系。
luoxn28
2021-05-13
854
0
Java线程的那些状态
java
jdk
linux
编程算法
Java线程(或者说计算机线程),是有一些状态来表示当前线程运行信息的,可以通过jsatck命令来查看Java进程中线程函数栈信息,其中就包括了Java线程状态。
luoxn28
2021-04-08
347
0
浅谈synchronized与Object.wait/notify原理
java
jvm
synchronized是Java中常用的锁机制,synchronized+Object.wait/notify是常用的等待唤醒机制,那它们的实现原理是什么呢?本文就synchronized与Object.wait/notify为例谈谈以下内容。
luoxn28
2021-04-08
670
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
seata RM源码分析
分布式
sql
github
java
数据库
同TM类似,RM侧也是有一个GlobalTransactionScanner类,来进行初始化的动作,GlobalTransactionScanner实现了InitializingBean,其afterPropertiesSet方法中会执行netty客户端初始化工作,逻辑如下:
luoxn28
2021-02-26
637
0
seata TM源码分析
java
网络安全
分布式
sql
linux
下面就一起来看下TM模块的实现原理,TM模块是seata中全局事务发起者和掌控者,其核心逻辑有:业务逻辑切面代理:对全局事务注册/提交操作。启动netty客户端:会启动TM/RM客户端与TC通信。数据源切面代理:SQL解析、分支事务注册/提交、undolog保存、分支事务状态上报。Rpc代理:在RPC流程中传递seata上下文(xid等,非本文分析重点)。
luoxn28
2021-01-28
1.1K
0
seata TC 请求处理流程
java
android
分布式
TC的业务channelHandler为类 io.seata.core.rpc.netty.AbstractNettyRemotingServer.ServerHandler,注意到达该类的请求都是经过编解码的了,请求类型为RpcMessage。ServerHandler类处理方法有:
luoxn28
2021-01-28
868
0
seata TC 模块分析
云数据库 Redis
java
分布式
Discovery模块就是服务发现模块,TC启动后需要将自己的信息注册到服务中心,这样才能暴露给其他使用者,Discovery接口定义如下:
luoxn28
2021-01-28
1.3K
0
seata TC启动流程分析
分布式
github
java
git
开源
seata-server 启动方法 io.seata.server.Server#main,默认启动端口 SERVER_DEFAULT_PORT = 8091。main方法主要是解析并设置一些配置,初始化几个线程池,启动DefaultCoordinator和Netty服务等,源码如下:
luoxn28
2021-01-28
795
0
seata AT模式流程
sql
数据库
分布式
java
Seata 是一款阿里开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案,github地址:https://github.com/seata/seata。
luoxn28
2021-01-28
1.1K
0
CompletableFuture 原理浅析
编程算法
unix
java
javascript
node.js
Java8新增了CompletableFuture 提供对异步计算的支持,可以通过回调的方式处理计算结果,CompletableFuture 类实现了CompletionStage和Future接口,所以还可以像之前使用Future那样使用CompletableFuture ,尽管已不再推荐这样用了。
luoxn28
2020-12-02
2K
0
CompletableFuture 应用实践
java
linux
首先来看一个问题,如果要执行多个任务,每个任务会返回对应结果,现在需要所有任务执行完毕之后,将这些任务结果统一打印出来,该如何完成呢?注意尽量不要使用业务线程来等待多个任务的结果,也就是不要使用Future.get方式。
luoxn28
2020-12-02
651
0
JMM Java内存模型
编程算法
缓存
java
其他
Java采用内存共享的模式来实现线程之间的通信。编译器和处理器可以对程序进行重排序优化处理,但是需要遵守一些规则,不能随意重排序。
luoxn28
2020-11-05
533
0
为什么说LockSupport是Java并发的基石?
java
c 语言
而AQS中的控制线程又是通过LockSupport类来实现的,因此可以说,LockSupport是Java并发基础组件中的基础组件。LockSupport定义了一组以park开头的方法用来阻塞当前线程,以及unpark(Thread thread)方法来唤醒一个被阻塞的线程。LockSupport提供的阻塞和唤醒方法如下:
luoxn28
2020-11-05
348
0
happens-before那些事儿
编程算法
java
缓存
比如volatile规则是volatile产生内存屏障保证了读在写之后进行的。程序次序规则、锁定规则是处理器和编辑器规则来决定的。
luoxn28
2020-11-05
470
0
toString如何转json
文件存储
编程算法
java
json
试想一个问题:如果我们已知Java对象的toString格式,想要获取其json格式或者其Java对象,该如何做呢?
luoxn28
2020-10-09
6.9K
1
dubbo provider是如何启动的
dubbo
android
java
unix
Netty支持多种服务端的server实例,包括mina、netty等,如下所示:
luoxn28
2020-07-14
381
0
Dubbo Provider Filter链是如何构建的
dubbo
html
java
provider端的Filter链构建是在初始化流程中构建的,我们知道初始化流程肯定会走到方法org.apache.dubbo.remoting.transport.netty4.NettyServer#doOpen中,可以在该方法打个断点,然后启动provider服务,调用栈信息如下:
luoxn28
2020-07-14
646
0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档