- 博客(7)
- 收藏
- 关注
原创 4.17-c++多线程学习-call_once与其使用场景(单例模式场景)
缺点是不管是否使用对象都会进行实例化,可能会浪费一定的内存空间。缺点是在多线程环境下需要考虑线程安全问题。可以被用于初始化单例模式中的唯一实例或者其他需要被全局初始化的对象。由于单例实例是全局唯一的,因此在多线程环境中使用单例模式时,需要考虑线程安全的问题。饿汉模式是在程序启动时就进行实例化,之后每次调用都返回同一个实例。因为实例在程序启动时就已经创建,所以不存在线程安全性的问题。懒汉模式是在第一次使用单例对象时才进行实例化,之后每次调用都返回第一次创建的实例。懒汉模式和饿汉模式都是单例模式的实现方式。
2024-04-17 00:32:20
433
1
原创 4.10C++多线程学习-lock_guard与unique_lock
在上面的示例中,我们在thread_func函数中创建了一个unique_lock对象lock,将全局锁g_mutex作为构造函数的参数传入,并指定defer_lock参数来延迟加锁。当lock_guard对象超出作用域时,它会自动释放锁,避免了手动释放锁的繁琐过程。它的使用与lock_guard类似,可以在作用域中创建一个unique_lock对象并将锁作为构造函数的参数传入。我们在thread_func函数中创建了一个lock_guard对象guard,将全局锁g_mutex作为构造函数的参数传入。
2024-04-10 00:28:19
283
1
原创 3.28-课后知识总结-多线程-互斥量数据共享问题&死锁
多线程数据共享问题是指在多线程环境下,多个线程同时访问和修改共享数据可能导致的各种并发问题,包括竞态条件(Race Condition)、死锁(Deadlock)、活锁(Livelock)、数据不一致等情况。竞态条件(Race Condition):当多个线程同时竞争对共享资源进行读写操作时,由于操作的执行顺序不确定,可能导致最终结果与期望不符,造成数据的不一致性。死锁(Deadlock):当两个或多个线程在持有某些资源的同时,又试图获取对方持有的资源,导致彼此之间都无法继续执行的状态。
2024-03-28 22:46:49
1456
1
原创 3.27(1)知识总结——多线程-线程函数中数据未定义错误
(1)传递临时变量问题,使用ref传递引用类型x += 1;return 0;结果如下:报错,未找到匹配的重载函数int main()int x = 1;t.join();return 0;(2)传递指针或引用指向局部变量的问题thread t;//先注释这个y,用test()中的,会引发异常,再把test()中y注释,使用全局变量aint y = 1;//全局变量没问题x += 1;int y = 1;
2024-03-27 23:35:25
332
原创 Qt6.5.1连接MySql失败解决办法!(适用所有Qt版本)真实有效!
Qt6.5.1连接MySql失败解决办法!(适用所有Qt版本)真实有效!
2023-08-30 22:23:03
733
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人