
Multi-thread/Multi-Process
文章平均质量分 72
多线程、多进程介绍
fengbingchun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux上将进程、线程与CPU核绑定
Linux上将进程、线程与CPU核绑定原创 2023-10-06 11:55:08 · 4614 阅读 · 0 评论 -
进程间通信(IPC)的方法:共享内存
进程间通信(IPC)的方法:共享内存原创 2023-09-17 11:43:16 · 415 阅读 · 0 评论 -
进程间通信(IPC)的方法:UNIX域套接字
进程间通信(IPC)的方法:UNIX域套接字原创 2023-09-17 11:24:00 · 820 阅读 · 0 评论 -
进程间通信(IPC)的方法:命名管道
进程间通信(IPC)的方法:命名管道原创 2023-09-09 17:23:32 · 359 阅读 · 0 评论 -
线程池EterfreeA/ThreadPool的使用
线程池EterfreeA/ThreadPool的使用原创 2023-02-05 12:29:07 · 721 阅读 · 1 评论 -
Linux下创建进程简介
在博文https://blog.csdn.net/fengbingchun/article/details/108940548中简单介绍了Windows下通过函数CreateProcess创建进程的过程,这里简单介绍下Linux下通过fork函数创建进程的过程。很早之前在https://blog.csdn.net/fengbingchun/article/details/45690745中也曾介绍过。进程创建的UNIX模型为分叉----执行(fork----exec)模型。fork函数调用生成一个完全复原创 2020-10-07 13:04:24 · 1185 阅读 · 0 评论 -
Windows下创建进程简介
正在执行的应用程序称为进程,进程不仅仅是指令和数据,它还有状态。状态是保存在处理器寄存器中的一组值,如当前执行指令的地址、保存在内存中的值,以及唯一定义进程在任一时刻任务的所有其他值。进程与应用程序的一个重要的区别在于,进程运行时,进程的状态会发生变化。进程是应用程序的基本构建块。同时运行的多个应用程序实际上就是多个进程。要支持多个用户,通常是利用具有不同权限的多个进程实现的。除非一个进程创建时显式与另一进程共享状态,否则其所有状态应是该进程私有的,即对其他进程不可见。进程的优点在于每个进程是孤立的原创 2020-10-06 16:28:14 · 3181 阅读 · 0 评论 -
C和C++安全编码笔记:并发
并发是一种系统属性,它是指系统中几个计算同时执行,并可能彼此交互。一个并发程序通常使用顺序线程和(或)进程的一些组合来执行计算,其中每个线程和进程执行可以在逻辑上并行执行的计算。这些进程和(或)线程可以在单处理器系统上使用分时抢占式的方式(用一种时间分片的方法使每个线程和(或)进程中的执行步骤交错进行)、在多核/多处理器系统中,或者在一个分布式计算系统中执行。多个控制流并发执行是现代计算环境的重要组成部分。7.1 多线程:多线程不一定是并发的。一个多线程程序可以以这样一种方式构建,即它的线程不会并发执行原创 2020-06-25 21:25:05 · 2852 阅读 · 2 评论 -
Effective Modern C++42招独家技巧助你改善C++11和C++14的高效用法笔记
Scott Meyers大师Effective三部曲:Effective C++、More Effective C++、Effective STL,这三本书出版已很多年,后来又出版了Effective Modern C++。Effective C++的笔记见:https://blog.csdn.net/fengbingchun/article/details/102761542More E...原创 2020-02-01 18:29:20 · 10162 阅读 · 3 评论 -
C++11中std::async的使用
C++11中的std::async是个模板函数。std::async异步调用函数,在某个时候以Args作为参数(可变长参数)调用Fn,无需等待Fn执行完成就可返回,返回结果是个std::future对象。Fn返回的值可通过std::future对象的get成员函数获取。一旦完成Fn的执行,共享状态将包含Fn返回的值并ready。std::async有两个版本:1.无需显示指定启动策略,自动...原创 2020-02-01 14:33:23 · 10018 阅读 · 1 评论 -
C++11中std::packaged_task的使用
C++11中的std::packaged_task是个模板类。std::packaged_task包装任何可调用目标(函数、lambda表达式、bind表达式、函数对象)以便它可以被异步调用。它的返回值或抛出的异常被存储于能通过std::future对象访问的共享状态中。std::packaged_task类似于std::function,但是会自动将其结果传递给std::future对象。...原创 2020-01-31 19:53:45 · 9329 阅读 · 2 评论 -
C++11中std::promise的使用
C++11中的std::promise是个模板类。一个std::promise对象可以存储由future对象(可能在另一个线程中)检索的T类型的值或派生自std::exception的异常,并提供一个同步点。在构造std::promise对象时,该对象与新的共享状态(shared state)关联。通过调用std::promise的get_future函数,可以将该共享状态与std::futu...原创 2020-01-31 14:46:11 · 7489 阅读 · 0 评论 -
C++11中std::shared_future的使用
C++11中的std::shared_future是个模板类。与std::future类似,std::shared_future提供了一种访问异步操作结果的机制;不同于std::future,std::shared_future允许多个线程等待同一个共享状态;不同于std::future仅支持移动操作,std::shared_future既支持移动操作也支持拷贝操作,而且多个shared_futu...原创 2020-01-30 20:58:29 · 14336 阅读 · 0 评论 -
C++11中std::future的使用
C++11中的std::future是一个模板类。std::future提供了一种用于访问异步操作结果的机制。std::future所引用的共享状态不能与任何其它异步返回的对象共享(与std::shared_future相反)( std::future references shared state that is not shared with any other asynchronous re...原创 2020-01-30 15:28:45 · 29614 阅读 · 3 评论 -
FFmpeg中一个线程获取视频流一个线程执行scale测试代码
在https://blog.csdn.net/fengbingchun/article/details/94712986 中介绍过如果usb视频流编码类型为rawvideo则无需进行解码,可直接通过av_read_frame获取视频流然后再通过sws_scale进行像素格式转换,当在高分辨率情况下,有时达不到实时显示,会有卡顿,经分析,性能瓶颈在av_read_frame和sws_scale,由于...原创 2019-07-07 19:46:23 · 799 阅读 · 0 评论 -
C语言中signal函数简介及使用
signal.h是C标准函数库中的信号处理部分,定义了程序执行时如何处理不同的信号。信号用作进程间通信,报告异常行为(如除零)、用户的一些按键组合(如同时按下Ctrl与C键,产生信号SIGINT)。C++中的对应头文件是csignal。C语言标准定义了6个信号,都定义在signal.h头文件中:(1). SIGABRT:程序异常中止,如调用abort函数。(2). SIGFPE:算术运...原创 2019-06-15 11:50:41 · 26443 阅读 · 0 评论 -
提高C++性能的编程技术笔记:多线程内存池+测试代码
为了使多个线程并发地分配和释放内存,必须在分配器方法中添加互斥锁。全局内存管理器(通过new()和delete()实现)是通用的,因此它的开销也非常大。因为单线程内存管理器要比多线程内存管理器快的多,所以如果要分配的大多数内存块限于单线程中使用,那么可以显著提升性能。如果开发了一套有效的单线程分配器,那么通过模板可以方便地将它们扩展到多线程环境中。以下是测试代码(multi_thr...原创 2018-11-28 21:16:28 · 1504 阅读 · 0 评论 -
提高C++性能的编程技术笔记:单线程内存池+测试代码
频繁地分配和回收内存会严重地降低程序的性能。性能降低的原因在于默认的内存管理是通用的。应用程序可能会以某种特定的方式使用内存,并且为不需要的功能付出性能上的代价。通过开发专用的内存管理器可以解决这个问题。对专用内存管理器的设计可以从多个角度考虑。我们至少可以想到两个方面:大小和并发。从大小的角度分为以下两种:(1)、固定大小:分配固定大小内存块的内存管理器。(2)、可变大小:分配任意大...原创 2018-11-25 17:06:16 · 1356 阅读 · 3 评论 -
C++11多线程中std::call_once的使用
C++11多线程中std::call_once的使用原创 2017-11-30 21:40:47 · 16482 阅读 · 1 评论 -
C++11中std::lock_guard的使用
C++11中std::lock_guard的使用原创 2017-11-27 21:26:18 · 83552 阅读 · 4 评论 -
C++11中std::unique_lock的使用
C++11中std::unique_lock的使用原创 2017-11-26 16:57:54 · 79889 阅读 · 0 评论 -
C++11中std::condition_variable的使用
C++11中std::condition_variable的使用原创 2017-06-24 23:27:56 · 53106 阅读 · 8 评论 -
C++11中std::mutex的使用
C++11中std::mutex的使用原创 2017-06-20 21:39:58 · 83611 阅读 · 1 评论 -
C++11中头文件atomic的使用
原子库为细粒度的原子操作提供组件,允许无锁并发编程。涉及同一对象的每个原子操作,相对于任何其他原子操作是不可分的。原子对象不具有数据竞争(data race)。原子类型对象的主要特点就是从不同线程访问不会导致数据竞争。因此从不同线程访问某个原子对象是良性(well-defined)行为,而通常对于非原子类型而言,并发访问某个对象(如果不做任何同步操作)会导致未定义(undifined)行为发生。...原创 2017-06-18 19:13:29 · 30038 阅读 · 6 评论 -
C++11中头文件thread的使用
C++11中加入了<thread>头文件,此头文件主要声明了std::thread线程类。C++11的标准类std::thread对线程进行了封装。std::thread代表了一个线程对象。应用C++11中的std::thread便于多线程程序的移值。<thread>是C++标准程序库中的一个头文件,定义了C++11标准中的一些表示线程的类、用于互斥访问的类与方法等。...原创 2017-06-17 22:56:04 · 17731 阅读 · 3 评论 -
Linux下多线程编程中信号量介绍及简单使用
Linux下多线程编程中信号量介绍及简单使用原创 2017-01-07 21:17:10 · 2551 阅读 · 0 评论 -
Windows和Linux下通用的线程接口
Windows和Linux下通用的线程接口原创 2016-12-18 13:12:41 · 3778 阅读 · 2 评论 -
Linux下多线程编程互斥锁和条件变量的简单使用
Linux下多线程编程互斥锁和条件变量的简单使用!原创 2015-09-19 20:49:08 · 4577 阅读 · 0 评论 -
Linux进程编程基础介绍
Linux进程编程基础介绍!原创 2015-05-13 11:23:35 · 2513 阅读 · 2 评论