java并发
文章平均质量分 53
码工AI助手
YUI,EMT什么的赛高.
展开
-
Java中的伪共享(false sharing)以及应对方案
1. 什么是伪共享CPU缓存系统中是以缓存行(cache line)为单位存储的。目前主流的CPU Cache的Cache Line大小都是64Bytes。在多线程情况下,如果需要修改“共享同一个缓存行的变量”,就会无意中影响彼此的性能,这就是伪共享(False Sharing)。2. 缓存行由于共享变量在CPU缓存中的存储是以缓存行为单位,一个缓存行可以存储多个变量(存满当前缓存...转载 2018-03-19 23:11:27 · 6023 阅读 · 0 评论 -
sun.misc.Unsafe详解
1. sun.misc.Unsafe类源码注释中文翻译//下面是sun.misc.Unsafe.java类源码package sun.misc;import java.lang.reflect.Field;/*** * This class should provide access to low-level operations and its * use should be ...原创 2018-03-20 22:05:45 · 802 阅读 · 0 评论 -
java double-check-lock并发问题
// thread 1class Singleton { private static Singleton INSTANCE public static Singleton getInstance() { if (INSTANCE == null) { synchronized (Singleton.class) { ...原创 2018-03-20 22:13:19 · 990 阅读 · 0 评论 -
websocket详解
Websocket详解websocket草案版本websocket主要有两种协议草案,一种是早期的draft-hixie-thewebsocketprotocol,另外一种是延用至现在的draft-ietf-hybi-thewebsocketprotocol。两种草案中又有各自对应的细化版本。详细可见 https://tools.ietf.org/html/draft-hixie-t...原创 2018-03-21 18:40:03 · 1276 阅读 · 0 评论 -
Peterson lock互斥
Peterson lock是并发中实现两个线程互斥的经典算法// 假设两个thread的id分别为0,1public class Peterson { private volatile boolean[] flag = new boolean[2]; private volatile int last; // 声明为volatile保证last在线程间的可见性 p...原创 2018-04-02 23:21:16 · 411 阅读 · 0 评论