- 博客(8)
- 收藏
- 关注
原创 互斥锁、条件变量、原子变量
通过结合具体应用场景和平台特性,合理选择并发原语,并使用最佳实践,可以在多线程和高并发环境中获得更好的性能和正确性。各类锁和原子操作的使用,各有优劣,需权衡可维护性与效率,并通过性能测试进行验证。使用条件变量时,修改共享数据和调用通知均需在持有互斥锁时进行,等待线程则在阻塞时自动释放锁,恢复时重新获取锁。:内部需要维护计数器,性能开销略高于普通互斥锁,同时滥用递归锁掩盖设计缺陷也是风险。任何一个线程对原子对象的写操作,与另一个线程的读操作之间,不会产生数据竞争,行为被定义良好。功能相似,只是语法不同。
2025-05-13 14:38:53
1036
原创 Qt 信号与槽机制概述与语法
Qt 的信号与槽是一种松耦合的对象间通信机制。当一个对象状态发生变化时,它可以发射(emit)一个信号;任何其他对象只要将这个信号连接(connect)到它的槽函数,就可以在信号发出时自动调用该槽函数。信号槽机制通过 Qt 的元对象系统(Meta-Object System)实现,支持任意数量和类型的参数,并且是类型安全的:当使用函数指针语法连接时,编译器会检查信号和槽参数类型是否兼容;如果使用字符串宏SIGNAL()SLOT()语法,则在运行时检查。(字符串宏语法)和(函数指针语法)。旧语法依赖moc。
2025-05-07 14:24:59
1037
原创 Qt委托事件--QItemDelegate 和 QStyledItemDelegate
创建编辑器控件(例如 QLineEdit、QSpinBox、QComboBox 等),用于编辑数据。将模型中数据设置到编辑器中。将编辑器中的数据更新回模型。设置编辑器在视图中的显示位置和大小。如果希望用 QLineEdit 进行文本编辑,并对输入做长度限制,也可以编写一个自定义委托。下面示例中,我们在创建编辑器时为 QLineEdit 设置最大输入长度。Q_OBJECTpublic:// setEditorData 和 setModelData 可以保持默认行为。
2025-03-06 18:47:28
421
原创 正则表达式 Qt
中国身份证号码通常有 15 位或 18 位,18 位身份证号码的最后一位可能为数字或字母 X/x。通过组合各种字符,可以匹配特定的字符串模式。中国的手机号一般以 1 开头,第二位为 3-9,后面跟随 9 个数字,共 11 位。表示匹配前面的表达式至少 n 次,至多 m 次。 匹配实际的点号,“\d” 表示匹配任意数字。定义一个字符集合,匹配集合内的任一单个字符。 匹配 "cat" 或 "dog"。表示匹配前面的表达式零次或多次。表示匹配前面的表达式一次或多次。表示匹配前面的表达式零次或一次。
2025-03-06 17:15:41
706
原创 Windows下编译OpenSSL
我的环境: Win11 64位CPU:Intelopenssl-3.4.0nasm-2.16.03-installer-x86strawberry-perl-5.40.0.1-64bitVisual Studio 2019一、下载OpenSSL源码OpenSSL官方源码下载地址:https://www.openssl.org/source/二、下载Perl编译OpenSSL需要用到Perl语言,需要安装支持Perl的环境。Windows下比较多用的是activeperl,比较小,但是缺少模
2025-02-05 17:07:38
987
2
原创 C++ zlib库 源码编译及使用(VS2019)
使用 cmake界面版生成VS2019解决方案打开生成的解决方案.sln注意:如果没有需要的平台配置(前面cmake点击Configure按钮时没选择x86平台,建议重新cmake生成,这样可能会出问题)生成动态库,注意选择需要的版本(debug/release)和平台(x64/x86),右键直接生成(也可以按需要选择特定的库生成,我这里是全部生成)生成静态库,注意选择需要的版本(debug/release)和平台(x64/x86)。
2025-02-05 16:59:12
275
原创 Win11下编译libssh2 并支持openssl和zlib
编译libssh2需要用到以下软件,请自己准备并安装好。编译libssh2需要用到以下库文件,如果不会的可以参考我其他的文章。
2025-02-05 16:41:13
559
原创 libcurl 支持sftp scp等 windows vs2019编译
原来的libcurl,不支持sftp等协议,所以要重编译libcurl,要支持sftp,需要WITH_SSH2,所以需要安装openssl和libssh2(如果没有,可以参考我的其他文章)编译libcurl需要用到以下库文件,如果不会的可以参考我其他的文章。
2025-02-05 16:28:13
547
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人