240 发简信
IP属地:湖南
  • “sweep算法就比较简单了,它就是从堆内存起始位置开始,线性遍历所有对象直到堆内存末尾” 这句话不是很明白,sweep算法直接从起始位置开始遍历,他是怎么知道一个对象占据多大内存的,因为每个对象分配的内存一般情况下就是三份:对象头+自己的成员数据+补齐。难道每个对象之间有一些内存分割(就是独一无二的标记。又或者这些个对象的定位信息存储在了某些地方)?

    标记-清除算法

    前言 垃圾自动回收机制的出现使编程更加的简单,使得我们不需要再去考虑内存分配和释放的问题,而是更加的专注在我们产品功能的实现上。但是我们还是需要花时间去了解下垃圾收集机制是怎...

  • 这个ABA的测试代码应该不是对的吧,你这个不存在ABA的问题,而是就是正常的一个线程使用完资源,另外一个线程接着使用,没有存在任何逻辑上的问题。正确的ABA问题是:
    线程 1 从内存位置V中取出A。
    线程 2 从位置V中取出A。
    线程 2 进行了一些操作,将B写入位置V。
    线程 2 将A再次写入位置V。
    线程 1 进行CAS操作,发现位置V中仍然是A,操作成功。

    正确的ABA问题是:线程1从内存取到了V但是还没有开始比较,CPU的时间片用完了,然后,CPU时间片分给了线程2使用,线程2捣鼓了一下V,从A变成B,之后又从B变成了A。接着线程1拿到了CPU的时间片,开始比较V,一看正好是A,所以就开始拿到锁了。

  • 这个ABA的测试代码应该不是对的吧,你这个不存在ABA的问题,而是就是正常的一个线程使用完资源,另外一个线程接着使用,没有存在任何逻辑上的问题。正确的ABA问题是:
    线程 1 从内存位置V中取出A。
    线程 2 从位置V中取出A。
    线程 2 进行了一些操作,将B写入位置V。
    线程 2 将A再次写入位置V。
    线程 1 进行CAS操作,发现位置V中仍然是A,操作成功。

    正确的ABA问题是:线程1从内存取到了V但是还没有开始比较,CPU的时间片用完了,然后,CPU时间片分给了线程2使用,线程2捣鼓了一下V,从A变成B,之后又从B变成了A。接着线程1拿到了CPU的时间片,开始比较V,一看正好是A,所以就开始拿到锁了。

    CAS中的ABA问题解决方案

    CAS CAS:Compare and Swap, 翻译成比较并交换。java.util.concurrent包中借助CAS实现了区别于synchronized同步锁的一种乐...

  • 看这个ThinkJS的RESTFul规范,好像一个资源(resource)只能写四个方法 getAction postAction putAction deleteAction.如果我想获取这个资源的关联信息应该怎么处理最好?把资源的关联信息当做另外一个源,然后再编写一个rest接口类?

    Thinkjs rest API

    think.controller.rest继承自 think.controller.base,用来处理 Rest 接口。 注意:如果客户端是get请求过来自动执行getAct...

  • Spring5源码解析之IOC-obtainFreshBeanFactory获取的解读(5)

    上面有一篇提到了obtainFreshBeanFactory的方法,没有做具体解释,这里就具体分析下这个方法的功能。代码如下: 主要功能 1.refreshBeanFacto...

  • Spring5源码分析之IOC-跟踪refresh方法(4)

    AbstractApplicationContext的refresh方法是提纲挈领的一个方法。这个方法如果全部读懂了,基本上Spring的源码就Over完了。下面先贴上ref...

  • Spring5源码分析之IOC-跟踪ClassPathXmlApplicationContext-(3)

    了解一个框架最好的方式就是阅读源码。源码面前,了无秘密。阅读源码是很辛苦和烦恼的一件事情,尤其是这种复杂框架的源码。阅读起来给人一种如坠五里云雾的感觉,伸手不见五指。我们在第...

  • 120
    Spring5源码分析之IOC-ApplicationContext的基本介绍-2

    ApplicationContext概念解释 ApplicationContext翻译成中文意思是:应用上下文。特别是Context这个单词在很多框架当中被使用,contex...

  • Spring5源码分析之IOC-基本使用-1

    Spring5已经出来了,出于好奇心,想看看Spring5的源码到底怎么样,因为最低兼容JDK8,所以肯定是用了lambda和Stream的东西,想看看Spring4当中冗杂...