C++内存管理(一) 这将会是一个系列的教程,以我个人的理解和网上的一些资料(包括侯捷老师的视频)来总结C++内存管理的详细内容。有错误之处,请大佬们多多指出,欢迎批评。 C++支持对内存创建的四个操作 C++支持内存创建的操作总共有四个,分别是:new,operator new,malloc,al ...
分类:
编程语言 时间:
2020-07-14 00:39:23
阅读次数:
70
闭包的概念是内层的函数可以引用包含在它外层的函数的变量,即使外层函数的执行已经终止。但该 变量提供的值并非变量创建时的值,而是在父函数范围内的最终值。 C#闭包可理解为跨作用域访问函数内变量,那么如何避免闭包陷阱呢?C#中普遍的做法是,将匿名 函数引用的变量用一个临时变量保存下来,然后在匿名函数中使 ...
日前,软件机器人技术应用已经日趋成熟,据预测,到2025年,每万名制造业员工将与103个机器人共同工作。传统的制造业运营模式,需要在固定程序内进行重复且无聊的工作。经常存在以下困扰:1:每天或是每周定时汇总数据、统计报表、管理评价等重复性非常高的机械性工作,占用了员工的大量时间。2:制造业员工数量众多,遇到员工离职的情况,还需要手动一个个核实移除相关信息,上传下达,步骤繁多。但如果在制造业的运营上
分类:
其他好文 时间:
2020-07-13 20:02:29
阅读次数:
74
延迟队列,顾名思义它是一种带有延迟功能的消息队列。那么,是在什么场景下我才需要这样的队列呢? 1. 背景 我们先看看以下业务场景: 当订单一直处于未支付状态时,如何及时的关闭订单 如何定期检查处于退款状态的订单是否已经退款成功 在订单长时间没有收到下游系统的状态通知的时候,如何实现阶梯式的同步订单状 ...
分类:
其他好文 时间:
2020-07-13 19:56:30
阅读次数:
66
volatile相当于轻量级锁 1,与锁不同的是,volatile不具有排他性,也不会导致上下文切换. 2,与锁相同的是,JVM实现volatile的有序性和可见性的保证也是借助内存屏障. volatile变量写操作相当于释放锁,读操作相当于获得锁 JVM通过在volatile变量写之前插入释放屏障 ...
分类:
其他好文 时间:
2020-07-13 13:45:09
阅读次数:
92
引言 最近自己在学习go项目的时候,查看别人的源码经常发现defer的使用,加上自己之前对这个关键字没怎么在意,只知道差不多是用来释放内部变量的。 查看资料可以发现,defer会在当前函数或者方法返回之前执行传入的函数,经常用于关闭文件描述符、关闭数据库连接以及解锁资源。 为了能够更形象地理解def ...
分类:
其他好文 时间:
2020-07-12 18:26:31
阅读次数:
71
从Lock讲起 Lock:一个接口,定义了在jdk层面上灵活实现锁的一种方式。 实现该接口的类是ReentrantLock。ReentrantLock这个单词的翻译是重入锁。 重入锁 持有锁的线程可以再次获取锁,增加重入次数,释放的锁时候也要将次数减为0。synchronized和Reentrant ...
分类:
其他好文 时间:
2020-07-12 17:10:25
阅读次数:
55
Busy spin 是一种在不释放 CPU 的基础上等待事件的技术。它经常用于避免丢 失 CPU 缓存中的数据(如果线程先暂停,之后在其他 CPU 上运行就会丢失)。 所以,如果你的工作要求低延迟,并且你的线程目前没有任何顺序,这样你就可 以通过循环检测队列中的新消息来代替调用 sleep() 或 ...
分类:
其他好文 时间:
2020-07-12 15:05:26
阅读次数:
192
###无锁 无锁是指线程通过无限循环来执行更新操作,如果执行成功就退出循环,如果执行失败(有其他线程更新了值),则继续执行,直到成功为止。CAS操作就属于无锁。如果从性能的角度来看,无锁状态的性能是非常高的。 ###自旋锁 自旋锁是一种通过让线程不释放当前的CPU执行一个忙循环,来尝试获取锁的方式。 ...
分类:
其他好文 时间:
2020-07-12 14:38:57
阅读次数:
85
1 方式一dhclient命令 yum install dhclient // 释放所有ip dhclient -r // 获取ip dhclient // 查看ip ip a 2 方式二setup图像命令 // install yum install setuptool yum install n ...
分类:
其他好文 时间:
2020-07-12 12:18:23
阅读次数:
62