Easter79 Easter79
3年前
synchronized 和 ReentrantLock的区别
synchronized是Java内建的同步机制,所以也有人称其为IntrinsicLocking,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取的线程只能等待或者阻塞在那里。在Java5以前,synchronized是仅有的同步手段,在代码中,synchronized可以用来修饰方法,也可以使用在特定的代码块
Wesley13 Wesley13
3年前
Java并发(六):volatile的实现原理
synchronized是一个重量级的锁,volatile通常被比喻成轻量级的synchronizedvolatile是一个变量修饰符,只能用来修饰变量。volatile写:当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存。volatile读:当读一个volatile变量时,JMM会把该线程对应的
Wesley13 Wesley13
3年前
Java高级面试必问:AQS 到底是什么?
前言JDK1.5以前只有synchronized同步锁,并且效率非常低,因此大神DougLea自己写了一套并发框架,这套框架的核心就在于AbstractQueuedSynchronizer类(即AQS),性能非常高,所以被引入JDK包中,即JUC。那么AQS是怎么实现的呢?本篇就是对AQS及其相关组件进行分析,了解其原理,并领略大神的优美而又精简
Wesley13 Wesley13
3年前
3分钟了解华为推送服务优势,第一项就让你心动!
消息推送(Pushnotification)指产品运营人员通过自身或三方的“推送服务”向用户主动地推送消息。简单来说,我们在移动设备(例如:手机)的通知中心或锁屏界面看到的消息都属于消息推送。作为消息推送的服务提供商之一,华为推送具有怎样的特点和优势?!在这里插入图片描述(https://imgblog.csdnimg.cn/202012221
Stella981 Stella981
3年前
Kafka学习(一)
官网kafka.apache.org集群部署消息中间键分布式流式平台KafkaStreamingFlume:1个进程包含三个角色sourcechannlesinkKakfa:每个进程对应一个角色producerbrokerconsu
Wesley13 Wesley13
3年前
Java的AQS
!(https://oscimg.oschina.net/oscnet/d87ee0244e37f312627f0d76446d7d6efc0.jpg)简介AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,为一系列同步器依赖于一个单独的原子变量(
Stella981 Stella981
3年前
Livepeer中文白皮书(翻译)
LivepeerWhitepaper分布式视频流媒体传输协议及经济激励DougPetkanics doug@livepeer.org(https://www.oschina.net/action/GoToLink?urlmailto%3Adoug%40livepeer.org) EricTang eric@live
javalover123 javalover123
2年前
轻量级分布式日志追踪-Tlog快速入门
公司目前还没有上SkyWalking、Pinpoint等分布式追踪系统,所以先用个轻量级的吧。Tlog只生成TraceId写入日志文件,没有收集、存储、查询,所以轻量
京东云开发者 京东云开发者
10个月前
【转载】golang内存分配
Go的分配采用了类似tcmalloc的结构.特点:使用一小块一小块的连续内存页,进行分配某个范围大小的内存需求.比如某个连续8KB专门用于分配1724字节,以此减少内存碎片.线程拥有一定的cache,可用于无锁分配.同时Go对于GC后回收的内存页,并不是马
京东云开发者 京东云开发者
3个月前
【转载】golang内存分配
作者:钱文Go的分配采用了类似tcmalloc的结构.特点:使用一小块一小块的连续内存页,进行分配某个范围大小的内存需求.比如某个连续8KB专门用于分配1724字节,以此减少内存碎片.线程拥有一定的cache,可用于无锁分配.同时Go对于GC后回收的内存页