C++并发编程 _ 基于锁的数据结构

C++并发编程 _ 基于锁的数据结构

bingliaolong C++ 3年前 13 0

意义 设计并发数据结构,意味着多个线程可以并发的访问这个数据结构,线程可对这个数据结构做相同或不同的操作,并且每一个线程都能在自己的自治域中看到该数据结构。且在多线程环境下,无数据丢失和损毁,所有的数据需要维持原样,且无条件竞争。这样的数据结构,称之为“线程安全”的数据结构。 本...

Soui七

Soui七 2

bingliaolong Soui 3年前 13 0

导出SOUI对象到Lua 为了在SOUI中使用lua,需要使用lua内核实现一个SOUI::IScriptModuler接口。 导出SOUI对象通常应该在IScriptModule的实现类的构造中执行 在lua中使用 事件分发处理 在MFC中,一个类要处理消息,这个类通常派生自C...

51CTO:C++语言高级课程一

51CTO:C++语言高级课程一 12

bingliaolong C++ 4年前 13 0

空类大小 空类对象在内存中是有起始地址的,也就是说最少能存一个字节。所以一个空类的大小是1。 this指针调整 如果派生类继承自多个基类,那么派生类对象的开始地址和第一个基类子对象的开始地址是相同的。 调用派生类的成员函数的时候,会根据这个函数属于哪个基类,对this指针进行调整...

Protobuf记述与使用

Protobuf记述与使用 5

bingliaolong C++ 4年前 13 0

理解 protobuf允许不同编程语言的程序员 以自己熟悉的方式在.proto文件里定义消息结构 然后protobuf的引擎把这个.proto文件里描述的消息结构进行解析,最后生成对应语言的代码,这些代码里描述了之前定义的消息结构 然后在项目中,需要用到这些消息结构的模块,只需引...

C++11_四种类型转换

C++11_四种类型转换

bingliaolong C++ 6年前 13 0

static_cast 用来完成编译器认可的隐式类型转换。 任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。 范围: 基本数据类型之间的转换。 派生体系中向上转型:将派生类指针或引用转化为基类指针或引用。 任意类型指针与void*之间的转换...

C++并发编程 _ 无锁数据结构

C++并发编程 _ 无锁数据结构

bingliaolong C++ 2年前 12 0

自旋锁 用ATOMIC_FLAG_INIT进行了flag的初始化 它确保了flag的初始状态是清除(或说“未设置”)状态 lock调用了test_and_set方法来试图获取锁 test_and_set会检查flag的当前值:如果flag是清除状态,则设置它并返回false;如果...

Deelx正则引擎使用

Deelx正则引擎使用

bingliaolong C++ Regex 4年前 12 0

使用 CRegexpT 正则表达式,'\0'结束的。 表达匹配模式。 CRegexpT::Compile 正则表达式,'\0'结束的。 表达匹配模式。 CRegexpT::MatchExact 精确匹配。 tstring字符串,使用 \0 作为结束标志。 返回匹配结果 Match...

C++标准库_chrono

C++标准库_chrono

bingliaolong C++ 4年前 12 0

类 duration count 内部计数,不一定是值 time_point system_clock now 获取当前时间 steady_clock high_resolution_clock treat_as_floating_point duration_values co...

编译器扩展语法:一

编译器扩展语法:一

bingliaolong C++ 2年前 12 0

Gcc 和 Clang __attribute__ ((__visibility__("hidden"))) 用于设置符号的可见性(visibility)属性 __visibility__("default") 默认可见性,符号在链接过程中...

C++17_第二篇

C++17_第二篇

bingliaolong C++ 6年前 12 0

静态断言 相关介绍: 预处理宏assert()在标准库头文件cassert中定义。 它可以在程序中测试逻辑表达式。 只要条件(表达式)是false,assert()宏就会调用std::abort(),终止程序。 另外assert()会在标准错误流cerr中显示结果。 静态断言 静...

扫一扫二维码分享