zoukankan      html  css  js  c++  java
  • 深表浅表拷贝

      深表拷贝意指堆中的内容也会拷贝,浅表拷贝是指栈中内容拷贝(共享拷贝源的堆指针)。

      JDK里面只是提供了浅拷贝,比如System.array.copy就是一例。如果想要实现深度拷贝需要将对象进行序列化,然后再进行反序列化获取对象,此时是深度拷贝。

      但是既然JDK里面没有提供深度拷贝,那也意味着其实深度拷贝应用的场景也不是很多。比如我们碰到了一个例子:某个List是共享出去的多线程不安全,此时会有定时任务List进行遍历,然后将满足条件的元素进行删除。分析到此处有两类线程来操作该List:定时任务以及用户程序;实现机制是通过CopyOnWrite对象来对List内容进行浅表拷贝,获取一个新的栈对象,然后,发现不满足条件的,对原List进行删除。这样就避免了遍历删除异常。

      其实采用Iterator的方式可以实现边遍历,边删除;两个线程对同时对一个队列又读又写还是不靠谱,现在各自操作各自的队列,影响最小。

  • 相关阅读:
    env文件的作用
    Ubuntu 卸载wine
    Linux配置yaf3.x.x环境
    yaf中使用Cli模式,也就是定时器
    Yaf 在Bootstrap中注册变量,然后在其他地方进行使用!
    yaf 查看配置
    yaf配置通用函数
    一个严谨的接口调用
    后台基础表
    tensorflow环境搭建
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/6985026.html
Copyright © 2011-2022 走看看