senninha

zeng haha


  • 主页

  • 分类

  • 归档

  • 标签

除法函数背后的优化细节

Posted on 2022-05-03 | In Linux , CSAPP

代码片段

​ 以下是一段很简单的函数,对传入的参数进行 除以8 的操作:

1
2
3
long arith(long a) {
return a / 8;
}
Read more »

从 volatile 到 TSO - 内存可见性问题浅析

Posted on 2022-01-20 | In Java

​ 最近在看《深入理解 Linux 内核》,讲到内核同步的时候提到了编译器屏障 __asm__volatile__("" ::: "memory") ,这行内联汇编的语句作用如下:

1)asm 用于指示编译器在此插入汇编语句
2)volatile 用于告诉编译器,严禁将此处的汇编语句与其它的语句重组合优化。即:原原本本按原来的样子处理这这里的汇编。
3) memory 强制 gcc 编译器假设 RAM 所有内存单元均被汇编指令修改,这样 CPU 中的通用寄存器中的数据将作废

​ 这个语义与 C 中的定义是等价的,但是在 Java 中,volatile 还有另外一层加强的语义:

声明成 volatile 的字段,Java 线程模型能确保所有线程看到这个变量的值是一致的。

Read more »

LinkedBlockingQueue 死循环

Posted on 2021-03-06 | In Java

​ 上线前压测发现业务线程 hang 死在 LinkedBlockingQueue,同时另外一条线程在 LinkedBlockingQueue.forEach() 中死循环了。看来是触发了 JDK(1.8.0_261) 的 bug。

Read more »

rsync--cannot delete non-empty directory

Posted on 2020-11-13 | In Linux

​ 解决 rsync 无法删除文件夹问题。

Read more »

Java Http Client 连接池复用研究

Posted on 2020-11-12 | In Java

​ 项目中用到了apache的httpclient,使用了池化的PoolingHttpClientConnectionManager,研究了一下相关的实现以及JDK原生的HttpURLConnection 的连接复用实现。

Read more »
Previous Page1234Next Page

16 posts
6 categories
26 tags
© 2024 senninha
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4