![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
远去的栀子花
为了美好的未来,加油!!!
展开
-
C++11多线程(1)
C++11中添加了duox多线程类,编写C++程序可以直接使用C++11中的多线程库,不必依赖于平台多线程,这样可以方便写出夸平台的多线程程序。多线程可以最大化利用计算机资源,提高代码的运行效率。 C++11中thread类提供两个成员函数,join()和detach()函数。这两个函数用来启动创建的线程。但是两者zhij之间存在区别:join()启动的线程会阻塞...原创 2018-09-25 09:39:00 · 351 阅读 · 0 评论 -
C++11多线程(2)
多线程的创建方法:一、函数指针形式将线程函数的函数名(函数指针)作为线程对象的参数进行创建线程,如果线程函数有参数,将参数按顺序传入线程对象,如下所示:#include <iostream>#include <thread> //1using namespace std;//2void SonThread(int a, int b){ cou...原创 2018-09-25 10:11:30 · 120 阅读 · 0 评论 -
C++11多线程(3)
创建、等待多个线程创建多个线程时,最好使用vector与join()函数结合使用#include <iostream>#include <thread>#include <vector>using namespace std;void print(){ cout << "hello world" << endl;...原创 2018-09-25 12:10:04 · 125 阅读 · 0 评论 -
C++11多线程(4)
死锁1、死锁定义如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的(Deadlock)。2、死锁产生的四个必要条件(1)互斥(2)不可剥夺(3)保持且请求(4)循环等待3、解决死锁的方法(1)预防死锁,破坏死锁产生的四个必要条件之一;(2)避免死锁,银行家算法;(3)检测死锁,资源分配图;(4)死锁解除;...原创 2018-09-25 16:50:29 · 102 阅读 · 0 评论 -
C++多线程--线程同步临界区
1、线程同步线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。3、线程同步的方法(1)临界区(2)信号量(3)互斥量(4)事件4、临界区(1)临界区的作用,线程在执行代码时,将代码锁定,不允许其他线程执行,只有该线程离开后,其他线程才能使用这些代码;(2)临界区的使用 ...原创 2018-09-25 18:17:33 · 446 阅读 · 0 评论 -
C++多线程--线程同步信号量
1、信号量信号量设置一个资源访问计数。当该计数值大于0的时候,该信号量对象为有信号状态,当该计数值等于0的时候,该信号量对象为无信号状态。2、信号量的使用 (1)创建信号量 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,//安全属性 ...原创 2018-09-25 18:29:41 · 1453 阅读 · 0 评论 -
C++多线程--线程同步--互斥量
1、互斥量互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源。2、互斥量使用 (1)创建互斥量 HANDLE CreateM( LPSECURITY_ATTRIBUTES lpMutexAttibutes, //安全控制 BOOL bI...原创 2018-09-25 19:46:38 · 281 阅读 · 0 评论 -
C++多线程--线程同步事件
1、事件事件是内核对象,多用于线程间通信,可以跨进程同步2、事件使用 (1)创建事件 HANDLE CreateEvent( LPSECURITY_ATTRIBUTE SlpEventAttributes,//安全控制,一般直接传入NULL BOOL bManualReset,//确定事件是手动还是自动 ...原创 2018-09-25 19:59:15 · 726 阅读 · 0 评论