在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率:● l 并发● l 异步● l 缓存1任务队列1.1 以生产者-消费者模型设计任务队列生产者-消费者模型是人们非常熟悉的模型,比如在某个服务器程序中,当User数据被逻辑模块修改后,就产生一个更新数据库的任务(produce)
原创 2021-07-16 10:12:39
505阅读
C++ | C++ 信号处理C++ 信号处理信号是由操作系统传给进程的中断,会提早终止
原创 2023-03-10 22:33:15
245阅读
C++ | C++异常处理C++ 异常处理异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试
原创 2023-04-06 16:33:09
244阅读
一、thread 本着能用STL就不用其他库的原则,本文以c++11的std::thread作为接口开发。【VS2010不支持C++11的线程,VS2013支持】 根据我另一个帖子,线程函数只能是全局或者静态的。https://.cnblogs./judes/p/5921104.html
转载 2019-05-14 17:10:00
189阅读
2评论
学一门新技术,还是要问那个问题,为什么我们需要这个技术,这个技术能解决什么痛点。一、为何需要线程池那么为什么我们需要线程池技术呢?多线程编程用的好好的,干嘛还要引入线程池这个东西呢?引入一个新的技术肯定不是为了装逼,肯定是为了解决某个问题的,而服务端一般都是效率问题。我们可以看到多线程提高了CPU的使用率和程序的工作效率,但是如果有大量的线程,就会影响性能,因为要大量的创建与销毁,因为CPU需要在
转载 2023-06-07 15:19:07
117阅读
编写程序不容易,编写多线程的程序更不容易。相信编写过多线程的程序都应该有这样的一个痛苦过程,什么样的情况呢?朋友们应该看一下代码就明白了,void data_process() { EnterCriticalSection(); if(/* error happens */) { LeaveCriticalSection();...
原创 2022-03-04 14:20:30
166阅读
编写程序不容易,编写多线程的程序更不容易。相信编写过多线程的程序都应该有这样的一个痛苦过程,什么样的情况呢?朋友们应该看一下代码就明白了,void data_process() { EnterCriticalSection(); if(/* error happens */) { LeaveCriticalSection();...
原创 2021-08-18 02:27:35
281阅读
PTHREAD_CREATE(3)NAME pthread_create -
原创 精选 2023-05-01 19:28:51
685阅读
# C/C++线程池 ## 介绍 在多线程编程中,线程池是一种常用的技术,可以提高程序的性能和效率。线程池是指预先创建一组线程,并将任务分配给这些线程来执行。通过重用线程,避免了线程创建和销毁的开销,从而提高了程序的响应速度。 本文将介绍C/C++线程池的概念、实现方法和使用场景,并给出一个简单的代码示例。 ## 线程池的概念 线程池由两个主要组件组成:工作线程和任务队列。 工作线程
原创 2023-08-25 05:19:18
123阅读
小编在前一篇中介绍了多线程实现的五种常用方法。在接下来所介绍的这种方法是最具有魅力的,最具有诱惑的实现多线程的方案---GCD一、什么是GCD调度队列(dispatch queue)。GCD会负责创建线程和调度你的任务,系统直接提供线程管理,大大的提高代码的执行效率与多核的利用率。1.GCD的一个重要概念是队列,它的核心理念:将长期运行的任务拆分成多个工作单元,并将这些单元添加到dispath q
直接上代码:涉及函数getopt(),getopt_long() 1 #include 2 #include 3 #include 4 #include 5 6 /* 7 int main(int argc, char *argv[]) 8 { 9 int opt;10 c...
转载 2015-10-10 18:00:00
111阅读
2评论
线程参数传递可以支持容器,对象。只要修改对象类型就ok。源码:
原创 2019-01-10 14:05:19
494阅读
windows 多线程
转载 2017-07-05 11:20:00
170阅读
2评论
1.创建一个线程  创建线程比较简单,使用std的thread实例化一个线程对象就创建完成了,示例: 1 #include <iostr
转载 2024-10-24 10:42:22
291阅读
为什么需要线程池目前的大多数网络服务器,包括Web服务器、Email服务器以及数
转载 2022-11-16 14:11:49
63阅读
多线是多任务处理的一种特殊方式,多任务处理允许让电脑同事运行两个或两个以上的程序,一般情况下,两种类型的多任务处理:基于进程和基于线程。 基于进程的多任务处理是程序的并发执行。 基于线程的多任务处理是同一程序的片段的并发执行。 多线程程序包含可以同时运行的两个或多个部分。这样的程序中的每个部分称为一
转载 2019-08-16 17:26:00
106阅读
  与 C++11 多线程相关的头文件   C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomic> ,<thread>,<mutex>,<condition_variable>和<future>。   <atomic>:该头文主要声明了两个类, std::atomic 和 std::atomic_fl
转载 2020-04-12 22:53:00
169阅读
2评论
http://www.codeproject.com/Articles/11976/Win32-Thread-Pool我在原基础上作了一下修改:线程等待Handle重置和销毁延时问题。// Filename : RunObject.h // Author : Siddharth Barman // Date : 18 Sept 2005 // Description : Defined i
原创 2023-09-19 09:36:08
47阅读
#include "iostream" //#include "thread" //头文件一般不加入,复制到别的文件,导致命名冲突 //总增加 //using namespace std; //每个名字独立的加入using引用 using std::cin; using std::cout; //using std::thread; void foo(){} void bar(int ...
转载 2017-10-12 23:06:00
90阅读
2评论
#include <iostream> #include <string> #include <memory> #include <vector> #include <thread> #include <queue> #include <funct
原创 2024-10-09 09:54:04
42阅读
  • 1
  • 2
  • 3
  • 4
  • 5