240 发简信
IP属地:北京
  • Trace 是用 web3j 把 合约转成的 java类

    springboot中使用web3j监听智能合约事件

    智能合约执行后有时需要在后台监听相应的事件。本文将介绍下如何在springboot中使用web3j库监听智能合约的事件 导入web3j的包 在 pom.xml 文件中添加如下...

  • 120
    redis 的五种数据结构实现

    下面这张表是 3.0 的实现版本,基本都是正确的,除了list的实现现在统一都是quicklist了。 字符串类型 如下图, Long 类型存为 int 32个字节以下存为...

  • @Devin_Mak 这是最基本的要求,实现必须要遵守,但是实现的一般比这个严格,x86就是你说的lock就比这个严格:smiley:

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • @Devin_Mak 当先写一个volatile 变量后再读一个volatile 变量,就可以保证写之前的任何指令和读之后的任何指令重排序,就是lock前缀的第二点

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • @Devin_Mak 当写一个 volatile 变量时,JMM 会把该线程对应的本地内存中的共享变量值刷 新到主内存。当读一个 volatile 变量时,JMM 会把该线程对应的本地内存置为无效。线程接 下来将从主内存中读取共享变量。当第二个操作是 volatile 写时,不管第一个操作时什么,都不能重排序。这个 规则确保 volatile 写之前的操作不会被编译器重排序到 volatile 写之后。 当第一个操作是 volatile 读时,不管第二个操作是什么,都不能重排序。这个 规则确保 volatile 读之后的操作不会被编译器重排序到 volatile 读之前。 当第一个操作是 volatile 写,第二个操作是 volatile 读时,不能重排序。

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • @Devin_Mak 他说的是对的,只不过要看平台了:grin:

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • @Devin_Mak x86平台严格些,都是lock指令,具有所有内存屏障的效果,但是像powerpc就宽松很多。

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • @Devin_Mak 不过好像volatile写 有的实现是通过 Lock指令的,不过java内存模型从来没有规定volatile写这么强的语义,要看具体平台的实现了。 不同平台的实现方式不同,java内存模型最基本的要求保证就行

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • @Devin_Mak lock的功能要更多,就像博主说的,具有三点的效果,第二第三点的效果,就是volatile读和volatile写的内存语义放在一起的效果

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • @Devin_Mak volatile 不会加lock前缀的,只有cas在多处理器时会加,volatile 是通过内存屏障实现的,具体的 volatile 写是 在该指令前加上loadload屏障在后面加上storeload屏障。比lock前缀要轻量级。

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • 编码问题是因为直接 write了,最好是 writeAndFlush(Unpooled.copiedBuffer(msg, CharsetUtil.UTF_8))

    spring boot整合netty

    公众号:三不猴[https://mp.weixin.qq.com/s/DkdxzrqI9zaoJVpyRJ9nnA]欢迎关注我的公众号,公众号内回复666获取面试资料,回复电...

  • volatile 写可以保证前面的操作不会重排序到后面,而且会刷新内存,volatile 读后面的操作不会重排序到前面。结合在一起保证了前面和后面的读写指令重排序,同时刷新内存。所以CAS具有volatile读和volatile写的内存语义.

    深入浅出CAS

    占小狼[https://www.jianshu.com/users/90ab66c248e6/latest_articles] 转载请注明原创出处,谢谢! 前言 CAS(Co...

  • springboot中使用web3j监听智能合约事件

    智能合约执行后有时需要在后台监听相应的事件。本文将介绍下如何在springboot中使用web3j库监听智能合约的事件 导入web3j的包 在 pom.xml 文件中添加如下...

  • 如何写一篇好的读书笔记

    写过很多读书笔记,每次写的时候,我总是想到珍珠二字。因为写一篇读书笔记,就仿佛在一本书里先找到珍珠,用自己最深的感触去触碰这些珍珠,然后要一颗一颗地把它们串成项链,串的过程要...

  • netty与springboot的整合

    netty框架 在网络编程领域,Netty是Java的一个优秀的框架,他将java的复杂和难以使用的关于OIO和NIO的一些框架进行了封装,使其隐藏在易用的api后面。总之,...