E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
C++11自旋锁
C++面向对象(OOP)编程-
C++11
新特性详解
C++11
作为一个重要的版本,引入了很多新的特性,解决了C++语言本身很多遗留的内存泄露问题,并且提供了很多比较灵活的用法。
发狂的小花
·
2023-12-31 07:48
C/C++精进之路
c++
开发语言
C++11新特性
并发
泛型编程
深入理解 C++ 右值引用和移动语义:全面解析
C++11
引入了右值引用,它也是
C++11
最重要的新特性之一。原因在于它解决了C++的一大历史遗留问题,即消除了很多场景下的不必要的额外开销。
小万哥丶
·
2023-12-31 03:50
C/C++
后端开发
软件工程
程序人生
编程语言
开源
Linux
自旋锁
自旋锁
指的是线程在为获取到许可的情况下循环获取许可状态实现TAS(TestAndSetLock)publicclassTASLockimplementsLock{//初始值为false;privateAtomicBooleanmutex
策马踏清风
·
2023-12-30 21:31
《深入理解
C++11
:
C++11
新特性解析与应用》笔记五
第五章提高类型安全5.1强类型枚举5.1.1枚举:分门别类与数值的名字具名枚举类型一般声明类似:enumGender{Male,Female}。匿名枚举类型可以使用三种方式实现:第一种方式时宏,比如#defineMale0#defineFemale1宏的弱点在于其定义的知识预处理阶段的名字,会干扰正常代码。第二种方式时匿名的enum,比如enum{Male,Female};c++中更受推荐的是第三
Mamong
·
2023-12-30 19:55
笔记
C/C++常见面试题整理
尤其是
C++11
,C++14,C++17越来越丰富了C++语言。C++修炼要比Java及C#要长。一步一步来吧。总结的答案不一定都对,一定自己去使用VS实践一把,才能领会。
26a058e669f9
·
2023-12-30 16:45
自己动手写
自旋锁
自旋锁
以其高效闻名。顾名思义,自旋即如果无法成功锁住锁资源则会一直循环尝试锁,这与互斥锁的行为较为不同(互斥锁如果无法锁住则会挂起等待)。
码哥比特
·
2023-12-30 13:18
c语言
linux
经验分享
程序人生
学习
服务器
后端
【C++】map和set
插入接口5.map的介绍接口insert接口operator[]6.multiset7.multimap8.map和set相关OJ1.关联式容器vector、list、deque、forward_list(
C+
慢慢走,慢慢等
·
2023-12-30 13:09
C++
c++
开发语言
【
C++11
】lambda表达式及包装器
一.lambda表达式1.可调用对象可调用对象即可以像函数一样被调用的对象,有以下三种:函数(指针)仿函数对象lambda表达式tips:调用函数时,既可以用函数名,也可以用函数地址,因为函数名和函数地址是一回事。2.lambda表达式格式[捕捉列表](参数列表)mutable->返回值类型{函数体}捕捉列表不能省略,即使它为空参数列表为空时可以省略,但是有mutable时不能省略mutable用
月夜星辉雪
·
2023-12-30 10:25
c++
java
前端
后端
【
C++11
】右值引用与移动语义
一.左值与右值左值:可以取地址的表示数据的表达式,左值可以出现在赋值符号左边右值:不能取地址的表示数据的表达式,右值不能出现在赋值符号左边intfun(){return0;}intmain(){inta=0;//a->左值constintb=1;//b->左值int*p=&a;//*p->左值a+b;//右值func();//右值10;//右值}二.左值引用与右值引用左值引用:给左值取的别名,符号
月夜星辉雪
·
2023-12-30 10:25
算法
开发语言
c++
后端
C++之std::decay
1.简介std::decay是
C++11
之后引进的模板编程工具,它的主要作用是将给定的类型T转换为它的“衰变”类型。
十五年专注C++开发
·
2023-12-30 00:27
#C++进阶
c++
开发语言
std::unordered_map 简单使用
C++11之后的emplace初始化:赋值方式:1.使用operator[]进行赋值:2.使用insert函数:3.使用范围初始化:1.使用迭代器遍历:2.使用范围-basedfor循环遍历:3.使用
C+
telllong
·
2023-12-29 23:24
C++基础实战
C++新特性
哈希算法
散列表
算法
C++
开发语言
C++ enum class 如何使用
enumclass是
C++11
引入的一种新的枚举类型,它是对传统C风格的枚举的一种改进。enumclass提供了更强大的类型安全性和作用域限定。
telllong
·
2023-12-29 23:49
C++新特性
C++基础实战
c++
java
前端
【C++设计模式 -- 单例(Singleton)模式】
模式单例模式什么是单例模式单例模式的特点为什么要使用单例模式单例模式的缺点单例模式实现懒汉式(LazyInitialization)方式(不安全)双重检查锁(Double-CheckedLocking)(线程安全)局部静态变量(线程安全)通过std::call_once创建(
C+
Holy meat
·
2023-12-29 19:09
c++
设计模式
单例模式
C++11
及上的原子操作底层原理与锁实现
原子变量与原子操作基础概念原子变量:一些基础的数据类型或指针加上原子组件。原子变量具有原子性。原子操作:对原子变量进行的操作就是原子操作。原子变量的原子性:对原子变量的操作进入到汇编后会对应好几个步骤,其他线程要么看到这些步骤都没开始,要么看到这些步骤都结束了。为什么要使用原子变量?多线程环境下,确保对共享变量的操作不会被干扰,从而避免竞态条件。如果是没有具有原子性的普通变量被多个线程去操作会如何
程韬123
·
2023-12-29 09:52
c++
linux
开发语言
汇编
c语言
分布式锁的原理解析与实现工具介绍
锁与IPC常见的锁:互斥锁、
自旋锁
、原子变量、读写锁、条件变量、信号量。IPC(进程间通信的方式):pipe、FIFO、信号量、消息队列、共性内存、socket、信号。
程韬123
·
2023-12-29 09:52
分布式
c++
linux
c语言
安全
C++(11):获得时间戳及时间
C++11
提供了chrono库,用于管理时间相关的操作及信息。
风静如云
·
2023-12-29 05:10
C/C++
c++
《深入理解
C++11
:
C++11
新特性解析与应用》笔记四
C++11
中,这种限制被取消了。事实上,
C++11
标准要求编译器智能地去判断在哪些情况下>>不是右移符号。4.2auto类型推导4.2.1静态类型、动态类型与类型推导
Mamong
·
2023-12-29 03:43
c++
笔记
java
ROS2 相对于 ROS1 做了哪些改动、有什么不同点
2.C++语言标准不同ROS1使用C++03标准,其API中不使用
C++11
功能。ROS2使用
C++11
标准,部分使用C++14功能。
背 锅 侠
·
2023-12-28 23:10
ROS
编程开发
机器人
arm开发
linux
C++11
条件变量condition_variable
文章目录前言正文等待通知注意事项结尾前言条件变量用于多线程中,其作用是在多线程间实现线程的等待、唤醒和通知机制,常配合互斥锁(std::mutex)一起使用。它主要用于解决数据竞争问题>。正文条件变量只有五个函数:方法作用notify_one()通知一个等待的线程notify_all()通知所有等待的线程wait()阻塞该线程,直到条件变量被唤醒wait_for()阻塞该线程,直到条件变量被唤醒或
默示MoS
·
2023-12-28 20:42
玩转C++
c++
服务器
C++11
原子操作atomic
文章目录原子操作atomic原子操作的相关函数原子操作的特点“平凡的”与“合格的”原子操作atomic前面我们介绍了互斥锁等一系列多线程相关操作,这里我们来说下原子操作atomic。可以理解为原子变量就是将上面的操作进行了整合的一个全新变量,但是实际上它的原理和互斥锁不一样,这关系到操作系统的底层,我也不了解。原子操作的相关函数方法作用is_lock_free检查原子对象是否免锁load原子地获得
默示MoS
·
2023-12-28 20:42
玩转C++
c++
开发语言
C++的移动语义和完美转发
参考《现代C++语言核心特性解析》移动语义
C++11
新特性的std::move()用于将一个左值转换为右值引用。它并不是实际移动或复制数据,而是通过将一个左值强制转换为一个右值引用来实现对对象的转移。
ACE叫牌
·
2023-12-28 18:44
C++11新特性
c++
开发语言
C++11
的lambda表达式
Lambda表达式是一种匿名函数,允许我们在不声明方法的情况下,直接定义函数。它是函数式编程的一种重要特性,常用于简化代码、优化程序结构和增强代码可读性。lambda表达式的语法非常简单,具体定义如下:[captures](params)specifiersexception->ret{body}举例:#includeintmain(){intx=3,y=4;autores=[x](inty)->
ACE叫牌
·
2023-12-28 18:11
C++11新特性
c++
开发语言
java多线程之CAS学习
他是一种乐观锁,也可以叫做
自旋锁
。就是通过号称不加锁的方式保证线程间的安全性的一种方式。与他相
书香码农大宝
·
2023-12-28 15:06
C++11
的列表初始化和右值引用
目录前言一、
C++11
的简介二、
C++11
的小故事。
kkbca
·
2023-12-28 11:03
c++
开发语言
C++11
lambda函数和包装器
目录前言一.lambda的引入二、lambda函数的使用1.一般使用2.引用三、包装器1.包装普通对象2.包装类成员对象3.bind前言学习过python的同学应该对lambda函数不陌生,这是一个匿名函数,不需要写函数的名字。在不会多地方调用某个简单函数的地方,就可以使用lambda。一.lambda的引入在学习lambda函数之前,我们来看一个用例。这是一些商品,我们需要对商品进行排序。str
kkbca
·
2023-12-28 10:56
c++
java
开发语言
C++中的左值,右值和移动语义详解
右值引用与移动语义是
C++11
中引入的两个重要概念,它们旨在提高代码的性能,尤其是在涉及到资源管理和对象转移的场景中。右值引用:右值引
hadiii
·
2023-12-28 00:19
c++
开发语言
笔记
对话面试官---自己实现
自旋锁
怎么实现?用Java代码
自旋锁
是一种基于循环重试的锁,当线程尝试获取锁时,如果锁已经被其他线程持有,该线程不会立即阻塞,而是循环等待一段时间,直到获取到锁为止。
什么什么啊啊啊
·
2023-12-28 00:47
对话面试官系列---知识集锦
java
开发语言
音视频基本概念
多线程好处充分利用cpu资源的工具多线程带来的问题多线程管理问题线程的互斥与同步互斥资源有限多个人去抢同步有序进行锁的种类读写锁读写分离
自旋锁
等待资源释放(例如)可重入锁SDL锁互斥锁SDL_CreateMutex
weixin_38432324
·
2023-12-27 17:08
java
jvm
开发语言
【新特性】C++STL容器和
C++11
新特性介绍(持续更新)
参考资料https://www.cnblogs.com/fusiwei/p/11823234.htmlC++STL容器和算法介绍1.C++的STL介绍STL⼀共提供六⼤组件,包括容器,算法,迭代器,仿函数,配接器和配置器,彼此可以组合套⽤。容器通过配置器取得数据存储空间,算法通过迭代器存取容器内容,仿函数可以协助算法完成不同的策略变化,配接器可以应⽤于容器、仿函数和迭代器。容器:各种数据结构,如v
CZ一星弱火
·
2023-12-27 14:30
#
c++新特性
算法
面试
c++
容器
C++11
多线程
前言:十分感谢字节在去年挂了我十几次的情况下,在我正式入职半年被裁了还愿意捞我一手,但是我一面就挂了,因为我不会C++多线程,我是傻逼,所以我痛定思痛,来学一手这个(这只是一方面因素,另一方面因素是现在上班好无聊啊,在摸鱼,顺手学点东西吧,一直看手机属实没啥看的,而且容易被抓包)对于一个啥也不会的人来学习一个新的知识点,那势必先百度(白嫖公司内网的我当然选择google),我目前所在的公司C++版
橙子小满
·
2023-12-27 10:17
笔记
c++
开发语言
linux内核死锁检测
二、Lockdep内核配置
自旋锁
与互斥锁在内核文件lib/Kconfig.debu
浪的不想起名字
·
2023-12-27 04:57
linux
算法
运维
原子操作实现
自旋锁
自旋锁
1.
自旋锁
(Spinlock)简介
自旋锁
是计算机科学中用于同步多个执行线程或进程的机制之一。与互斥锁(mutex)相似,
自旋锁
的目的也是为了防止多个线程同时访问临界资源。
故事还在继续吗
·
2023-12-26 20:42
C/C++
c语言
开发语言
【C++】lambda表达式语法详细解读(代码演示,要点解析)
YY的《C++》专栏YY的《
C++11
》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》专栏YY的《小小知识点》专栏目录一.lambda表达式语法1)lambda
YY的秘密代码小屋
·
2023-12-26 15:44
YYの小小知识点
c++
java
windows
【C++】lambda解决个性化排序问题(对比仿函数)(代码演示)
YY的《C++》专栏YY的《
C++11
》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》专栏YY的《小小知识点》专栏目录一.lambda解决个性化排序问题
YY的秘密代码小屋
·
2023-12-26 15:43
YYの小小知识点
c++
java
数据库
右值引用和移动语义(
C++11
)
左值引用和右值引用回顾引用我们之前就了解到了左值引用,首先我们要了解引用在编译器底层其实就是指针。具体来说,当声明引用时,编译器会在底层生成一个指针来表示引用,但在代码编写和使用时,我们可以像使用变量类似取别名的方式一样来操作引用,而不需要显式地使用指针符号。这使得引用更为方便,且看起来更直观,同时也能保证所获得的引用总是有效的。那什么是左值,什么又是右值呢??什么是左值与右值左值是表示数据的表达
高居沉
·
2023-12-26 09:00
C++基础知识
c++
开发语言
C++11
(上):新特性讲解
C++11
新特性讲解前言1.列表初始化1.1{}初始化1.2std::initializer_list2.类型推导2.1auto2.2typeid2.3decltype3.范围for4.STL的变化4.1
派小星233
·
2023-12-26 09:27
C++进阶
c++
开发语言
笔记
学习方法
经验分享
C++的堆heap操作RandomIt
heapmake_heap()对heap增加一个元素push_heap()对heap取出下一个元素pop_heap()对heap转化为一个已排序群集sort_heap()测试范围内的元素是否是一个二叉堆(
C+
~kiss~
·
2023-12-26 04:21
C++
c++
C++中vector返回值的最高效返回
移动语义(
C++11
后可用)std::vector
~kiss~
·
2023-12-26 04:50
C++
c++
《深入理解
C++11
:
C++11
新特性解析与应用》笔记三
c++中已经有一个好用的规则,就是如果派生类想要使用基类版本的成员函数,可以通过using声明来完成:
c++11
扩展了这个做法。子类可以通过使用using声明来声明继承基类的构造函数:这样就不需
Mamong
·
2023-12-26 01:45
c++
笔记
深入了解—
C++11
特性
目录一、
C++11
简介二、初始化列表2.1C++98中{}的初始化问题2.2内置类型的列表初始化2.3自定义类型的列表初始化2.3.1.标准库支持单个对象的列表初始化2.3.2.多个对象的列表初始化三、
努力学习的小赵同志
·
2023-12-25 20:25
c++
开发语言
Linux内核中锁的总结
锁的总结锁描述问题经典
自旋锁
在同一时刻只能被一个内核代码路径持有刚刚释放锁的CPU更有机会马上又获得锁,没有考虑在锁外面等待了很久的CPU,导致在锁争用激烈场景下性能低下;在多处理器和NUMA系统中,所有等待
自旋锁
的线程都在同一个共享变量上自旋
显微镜下的内核
·
2023-12-25 17:23
Linux操作系统入门学习
linux
c++11
标准模板(STL)(std::pair)(六)按字典序比较 pair 中的值
定义于头文件std::pair是一个结构体模板,其可于一个单元存储两个相异对象。pair是std::tuple的拥有两个元素的特殊情况。按字典序比较pair中的值operator==,!=,,>=(std::pair)templatebooloperator==(constpair&lhs,constpair&rhs);(1)(C++14前)templateconstexprbooloperato
繁星璀璨G
·
2023-12-25 15:21
#
std::pair
c++
标准库模板
pair
tuple
一个单元存储两个相异对象
c++11
标准模板(STL)(std::pair)(七)访问 pair 的一个元素
访问pair的一个元素std::get(std::pair)templatetypenamestd::tuple_element>::type&get(pair&p)noexcept;(1)(
C++11
繁星璀璨G
·
2023-12-25 15:49
#
std::pair
c++
标准库模板
pair
tuple
访问
pair
的一个元素
C++11
模板类array
有鉴于此,
C++11
新增了模板类array,它也位于名称空间std中。与数组一样,array对象的长度也时固定的,也使用栈(静态内存分配),而不是自由存储区,因此其效率与数组相同,但更方便,更安全。
WendyWJGu
·
2023-12-25 11:27
C/C++学习
c++
开发语言
c语言
读者写着问题
其他各种锁
自旋锁
自旋锁
(Spinlock)是一种用于多线程同步的锁机制。当一个线程试图获取一个已被其他线程占用的锁时,该线程会在一个循环中不断检查锁的状态,这就是“自旋”的含义。
天穹南都
·
2023-12-25 10:27
开发语言
【
C++11
/C++17】std::vector高效删除(O(1))
今天继续讨论一下std::vector的erase方法及其优化策略。我们已经知道从std::vector中间的某个位置删除项需要O(n)时间。这是因为移除一个项所产生的空间必须通过将空间后面的所有项移动到左边来填补。在像这样移动项目时,如果操作非常频繁或着数据量非常大,虽然保留了它们的顺序但会很损耗性能。如果保持顺序并不重要,我们可以对其进行优化。优化的核心是,如何避免删除元素后,数据的大量或者频
_君莫笑
·
2023-12-25 03:29
c++
STL
容器
C++17
【
C++11
/C++17】std::vector按顺序插入
在有序std::vector中插入元素,并保持std::vector元素排序std::vector本身不会对它们的对象进行排序。#include#include#include#include#include#includeusingnamespacestd;voidinsert_sorted(vector&v,conststring&words){constautoinsert_pos(lowe
_君莫笑
·
2023-12-25 03:29
c++
c++11
c++17
stl
容器
【
C++11
/17】std::map高效插入
我们在使用stl的映射容器std::map时,经常需要向容器中插入数据。由于map的元素key值是唯一的,我们经常遇到这样的场景:向map中插入元素时,指定的key已经存在则直接更新;指定的key不存在,然后才做插入操作;通用的做法,可以直接用emplace操作,判断指定的key是否存在,如果不存在,则插入元素。当元素存在的时候,emplace依然会构造一次带待插入元素,判断不需要插入后,将该元素
_君莫笑
·
2023-12-25 03:58
c++
C++17
try_emplace
Java AQS 核心数据结构-CLH 锁及优化
JavaAQS核心数据结构-CLH锁什么是CLH锁CLH锁是对
自旋锁
的一种改进,有效的解决了以上的两个缺点。第一个是锁饥饿问题。
努力学习的小飞侠
·
2023-12-25 01:01
JUC
java
开发语言
单例模式及数组也能无锁:AtomicIntegerArray
减少锁持有时间锁粗化锁偏向轻量级锁
自旋锁
锁消除ThreadLocal的简单使用和AtomicInteger类似的还有AtomicLong用来代表long型数据AtomicBoolean表示bollean
helloworld1238888
·
2023-12-24 21:28
单例模式
上一页
12
13
14
15
16
17
18
19
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他