- 博客(123)
- 资源 (2)
- 收藏
- 关注
原创 c++ std::lock_guard/unique_lock
本文摘要:C++11提供了两种互斥量管理工具:std::lock_guard和std::unique_lock。lock_guard通过RAII机制在构造时自动加锁、析构时解锁,简单高效但不支持手动操作。unique_lock功能更灵活,支持延迟锁定(defer_lock)、尝试锁定(try_to_lock)和已锁定管理(adopt_lock),并提供lock()/unlock()等手动控制接口,但性能开销略高。两者均通过析构自动释放锁,其中unique_lock的所有权可移动但不可复制。
2025-05-28 08:45:42
352
原创 Linux内核-锁机制
Linux内核提供了多种锁机制来确保多线程环境下的数据同步和互斥访问。主要的锁机制包括原子操作、自旋锁、信号量、RCU(Read-Copy-Update)、读写锁和互斥锁。原子操作用于简单的整数操作,确保操作的不可分割性。自旋锁适用于保护短代码段,避免长时间占用CPU资源。信号量适合保护较长的临界区,但代价较高。RCU机制允许读写并发,适用于读多写少的场景。读写锁允许多个读操作并发,但写操作独占。互斥锁则用于保护数据不被并发修改,性能较高。每种锁机制有其适用场景,开发者应根据具体需求选择合适的锁机制。
2025-05-15 13:43:24
578
原创 Linux内核-进程管理(进程复制)
_do_fork函数是执行系统调用如fork、vfork、clone或启动内核线程kernel_thread时的核心函数。该函数通过clone_flags参数控制复制过程中的属性,如指定子进程终止时发送给父进程的信号。_do_fork首先调用copy_process来生成新进程的实际工作,包括复制父进程的task_struct和thread_info实例内容。然后,它会获取PID,并在必要时初始化vfork完成处理函数。接着,函数会唤醒新创建的子进程,并在需要时等待vfork完成。
2025-05-12 11:20:55
582
原创 c++ std::mutex与std::condition_variable
std::mutex std::lock_guard std::unique_lock; std::condition_variable
2023-08-24 17:59:37
486
原创 c++ std::thread线程类
c++ std::thread类用法及避坑详解sleep_for(),sleep_until(),get_tid(), yield()等;
2023-08-24 09:31:13
458
原创 c++ boost库之scoped_ptr,shared_ptr,weak_ptr智能指针
boost库 scoped_ptr,shared_ptr,weak_ptr作用及使用示例
2023-08-09 11:52:31
199
原创 opencv错误集锦
OpenCV(3.4.1) Error: Assertion failed (ni == ni1) in collectCalibrationData, file /usr/local/opencv-3.4.1/modules/calib3d/src/calibration.cpp, line 3143terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(3.4.1) /usr/local/open
2023-06-14 09:33:24
1034
原创 linux开发板内核启动时Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,3)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,3)CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.19.90 #2Hardware name: Vendor SS928V100 DEMO Board (DT)Call trace: dump_backtrace+0x0/0x1a0 show_stack+0x14/0x20 dump_stack+0x
2023-05-24 10:31:12
1792
原创 利用sampleini库实现c/c++操作ini配置文件
c/c++操作ini增删改查ini配置文件;simpleini不能setValue不能保存到磁盘问题
2023-04-27 23:51:23
781
原创 (海思)uboot之mtd模块spi随笔
上述流程中重要的几个结构体: (1)struct mtd_info_ex (2)struct spi_flash (3)struct hifmc_host。其中最重要的函数为 flashd的读/写/擦除函数;这里读写看dma版本;结构体表示海思flash memory control host 部分;下对应文件,如这里的spi_compatible.c;
2023-03-24 00:00:50
817
翻译 sqlite3数据库高效API(六)
sqlite3_open_v2 sqlite3_prepare_v2 sqlite3_bind_xxx sqlite3_step sqlite3_finalize sqlite3_column_blob sqlite3_column_double sqlite3_column_value sqlite3_column_bytes等接口详解
2023-02-24 00:10:49
2007
原创 sqlite3数据库API-执行sql语句(三)
sqlite3_get_table sqlite3_free_table sqlite3_exec sqlite3_get_table()接口又调用了sqlite3_exec();sqlite3_get_table()不会访问SQLite的任何内部数据结构;它只使用此处定义的公共接口
2023-02-16 23:42:40
1160
原创 海思OSD实现流程
故更新画布时 HI_MPI_RGN_DetachFromChn和HI_MPI_RGN_AttachToChn可取消。若没有解绑更新画布,可能看大画布出现花屏现象;
2023-02-04 15:19:59
409
原创 linux内核-调度(调度器的实现)
linux内核调度器,调度器类sched_class ,就绪队列rq,调度实体sched_entity,进程优先级计算,周期新调度器scheduler_tick和主调度器scheduler等介绍
2022-12-25 23:11:04
913
翻译 sqlite3数据库API-打开关闭(二)
sqlite3_close(C)和sqlite3_close_v2(C)参数C一定要是NULL或者从sqlite3_open(),sqlite3_open16(),或者sqlite3_open_v2()获取的sqlite3对象指针;()接口,它将返回SQLITE_OK,但不会立即释放数据库连接,而是将数据库连接标记为不可用的"僵尸",等待所有完成后自动释放数据库连接;#define SQLITE_OPEN_MEMORY 0x00000080 /* 数据库将作为内存中的数据库打开 */
2022-11-22 00:21:07
3148
原创 linux之framebuffer(1)
linux内核framebufferFBIOPAN_DISPLAY,FBIOGET_FSCREENINFO,FBIOPUT_VSCREENINFO,FBIOGET_VSCREENINFO等
2022-09-25 17:42:29
1040
原创 linux驱动之I2C
struct i2c_driverstruct i2c_clienti2c_master_sendi2c_master_recvi2c_transferlinux I2c应用层驱动
2022-09-14 23:31:33
2085
原创 linux驱动之设备树查找节点(3)
查找办法:通过节点的compatible属性值查找指定节点;通过节点名查找指定节点;通过节点路径查找指定节点;
2022-09-11 13:42:58
2546
原创 linux驱动之设备树语法(2)
设备树语法篇compatible属性 #address-cells和#size-cells属性ranges属性 interrupt属性aliases属性chosen属性
2022-09-04 18:07:02
1306
原创 opencv之几何检测笔记
HoughLinesP霍夫变换线检测createLineSegmentDetector LSD快速线检测 detect drawSegments
2022-08-26 11:19:49
777
原创 linux驱动之struct input_dev结构体
struct input_devstruct input_polled_devinput_allocate_deviceinput_register_deviceinput_eventinput_syncinput_allocate_polled_deviceinput_register_polled_device
2022-08-25 23:49:00
1435
svn服务器和客服端pc端软件
2022-08-20
opencv-3.4.1相关库
2022-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人