摘要: 认识 Qt 参考: 【1】《Qt6C++ 开发指南》 Qt 简介 很多刚接触 Qt 的开发者会认为 Qt 是一种编程语言,或者将 Qt 的集成开发环境(integrated development environment,IDE)Qt Creator 当作 Qt,这些理解是错误的。Qt 实质上是用 阅读全文
posted @ 2023-11-08 15:44 螺旋大炮 阅读(208) 评论(0) 推荐(0)
摘要: C++ 11 简单线程池的实现 使用线程池的优点: 降低资源消耗:线程是操作系统的珍稀资源,如果频繁创建和销毁线程系统资源消耗过大;而线程池的目的是避免频繁的创建和销毁线程,在线程池中可以重复使用。 提高响应速度,在线程池中可以避免线程的创建时间,提高线程的调用速度。 提高线程的管理,使用线程池可以 阅读全文
posted @ 2023-11-07 18:52 螺旋大炮 阅读(771) 评论(0) 推荐(0)
摘要: atomic 原子操作 在前面对于多个线程操作共享数据,通过mutex 互斥量加锁和解锁来控制共享数据不会混乱,但是每一次加锁和解锁都需要很大开销。 为了提高性能,C++ 11 提供原子类型,它提供了多线程间的原子操作,可以把原子操作理解成一种:不需要用到互斥量加锁(无锁)技术的多线程并发编程方式。 阅读全文
posted @ 2023-11-07 18:47 螺旋大炮 阅读(665) 评论(0) 推荐(0)
摘要: future 头文件的使用 参考链接: https://juejin.cn/post/7076786451316211748 https://cplusplus.com/reference/future/ 我们前面介绍的std::thread 是C++11中提供异步创建多线程的工具,只能是异步运行任 阅读全文
posted @ 2023-11-07 18:43 螺旋大炮 阅读(634) 评论(0) 推荐(0)
摘要: condition_variable 的使用 参考链接: https://juejin.cn/post/7071030029659930632 https://cplusplus.com/reference/future/ C++11对这种行为也提供了有力的支持,这就是条件变量(condition_ 阅读全文
posted @ 2023-11-07 18:36 螺旋大炮 阅读(409) 评论(0) 推荐(0)
摘要: thread 头文件的使用 多线程结束的标志:当主线程是否执行完毕,如果主线程执行完成,就代表整个进程执行完毕;如果子线程没有执行完成,那么这些子线程也会被操作系统强行终止;当然也有例外。 创建线程 使用 std::thread 需要引入头文件 。下面是 thread 的构造函数: // 默认构造函 阅读全文
posted @ 2023-11-07 18:24 螺旋大炮 阅读(1040) 评论(0) 推荐(0)
摘要: mutex 头文件的使用 互斥量 为了保证数据共享的线程安全,C++ 提供 “互斥量” 的概念。 互斥量是一个类对象;可以理解成一把锁,多线程使用 lock() 成员函数来加锁,保证只有一个线程执行,其他线程处于堵塞状态。 互斥锁的特点: 互斥锁只有两种状态,即上锁( lock )和解锁( unlo 阅读全文
posted @ 2023-11-07 18:24 螺旋大炮 阅读(872) 评论(0) 推荐(0)