-
Java 并发编程之 LongAdder 源码解析
基本用法 public class LongAdderDemo { public static void main(String[] args) {
-
Java 并发编程之 AtomicIntegerFieldUpdater AtomicLongFieldUpdater AtomicReferenceFieldUpdater
说明 并发原子修改器,保证在多线程环境下对象中的字段的原子性。 示例 对象类 public class FieldUpdaterTest { vola
-
Java 并发编程之 AtomicIntergerArray AtomicLongArray AtomicReferenceArray
说明 原子并发数组,保证在多线程下对每个索引位置上的元素的原子性。 AtomicIntergerArray Integer类型数组。 public class
-
Java 并发编程之 AtomicMarkableReference
说明 AtomicStampedReference解决了ABA问题,但需要每次修改版本号比较繁琐,AtomicMarkableReference只关心是否有改动
-
Java 并发编程之 AtomicStampedReference
说明 AtomicReference不能保证ABA问题,故引入了版本标记AtomicStampedReference。 代码 public class Atom
-
Java 并发编程之 AtomicReference
说明 AtomicReference是原子的引用类型保证了并发情况下对引用的修改的线程安全。 代码 public class AtomicReferenceDe
-
Java 并发编程之 AtomicBoolean
代码 public class AtomicBooleanDemo { public static void main(String[] args)
-
Java 并发编程之 AtomicInteger AtomicLong
说明 AtomicInteger和AtomicLong原子类,保证了并发时线程安全的累加操作。底层是使用CAS原理。 AtomicInteger 原子整型类 A
-
Java jcmd 命令动态修改 JVM 启动参数
说明 文中的12345为进程的pid。 列出所有标志 Linux jcmd 12345 VM.flags -all | grep manageable Wind
-
IDEA Debug 人为修改数值模拟数据不一致情况
场景 在CAS的compareAndSet中,需要比较原先的值,模拟多线程修改了数值。 使用 在Debug的Variables面板中,选择变量,右键,选择Set
-
IDEA Debug 查看方法返回值
示例 在Math.random();这行打上一个断点,查看其返回的具体值。 public class DebugMethodReturnValue {
-
OpenResty 使用 Certbot 生成 SSL 证书
操作系统 Centos8 安装 snap 包管理器 安装epel仓库并更新 sudo dnf install epel-release sudo dnf u
2021-09-15, Views: 3357 , Topics: OpenResty HTTPS Let's Encrypt
-
移动端使用 Chrome 开发者工具调试网页
备注 Chrome竟然连接不上,Edge虽然有些延迟却能连接上 (Emm...没有看错,就是Chrome连不上,Edge可以。) 设备 Android手机或平
-
Chrome 开发者工具模拟 WebSocket 弱网环境
结论 目前开发者工具对于WebSocket的弱网环境还没有支持,更改Throttling对WebSocket建立连接时有用,建立连接后不起作用。 相关 Bug
-
JavaScript WebSocket 为什么不提供 ping 和 pong
原因 WebSocket是基于TCP的长链接,保持长连接的功能由TCP的keepalive实现。当网络由连接态到中断态再到连接态转换时,TCP可能仍然保持了连接
2021-09-10, Views: 4675 , Topics: WebSocket JavaScript
-
Java WebSocket The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
版本 使用了javax.websocket的api。 错误信息 java.lang.IllegalStateException: The remote endp
-
Java synchronized 保证可见性
原因 synchronized在代码块执行结束后会将执行结果刷新到主存中。 所以synchronized也和volatile有可见性的作用。 JMM 规范 sy
-
Java 使用 wait 等待会使 synchronized 升级为重量级锁
原因 因为wait方法会让锁对象从owner拥有者变为waitSet队列中等待。 所以必须关联一个Monitor对象,这样synchronized就升级为了重量
-
Java volatile 内存屏障保证可见性和有序性
相关名词 内存屏障:Memory Barrier 写屏障:store fence 读屏障:load fence 保证可见性 写屏障 保证在该屏障之前的代码,对共
-
Java 中 sleep 和 wait 的区别
区别一 sleep是Thread的方法。 wait是Object的方法。 区别二 sleep不需要包裹在synchronized中。 wait必须包裹在sync