随笔分类 -  C++多线程

摘要:自定义windows消息 #define MY_MSG (WM_USER+1) //为了防止用户自定义消息ID与系统消息ID冲突,用户只能定义WM_USER(0x0400)以后的ID使用 PostThreadMessage 将一个队列消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回 阅读全文
posted @ 2020-04-19 09:10 坦坦荡荡 阅读(563) 评论(0) 推荐(0)
摘要:如果一个变量是全局的,那么所有线程访问的是同一份,某一个线程对其修改会影响其他所有线程。如果我们需要一个变量在每个线程中都能访问,并且值在每个线程中互不影响,这就是TLS。 线程局部存储在不同平台有不同的实现,可移植性不好。线程局部存储不难实现,最简单的办法是建立一个全局表,通过当前线程ID去查询相 阅读全文
posted @ 2020-04-18 23:25 坦坦荡荡 阅读(2394) 评论(0) 推荐(0)
摘要:PV操作: P操作:passeren,通过,理解为申请资源 V操作:vrijgeven,释放,理解为释放资源 P操作定义如下: 1.sem减1。 2.若sem>=0,则P操作返回,该线程可以”通过“并继续执行。 3.若sem<0,则该线程被阻塞,进入操作系统的阻塞队列。 V操作定义如下: 1.sem 阅读全文
posted @ 2020-04-18 21:33 坦坦荡荡 阅读(2744) 评论(0) 推荐(0)
摘要:事件是WIN32提供的最灵活的线程间同步方式,根据状态变迁方式不同,可分为手动设置和自动恢复两类 手动设置:这种对象只可能用程序手动设置,在需要该事件或者事件发生时,采用SetEvent及ResetEvent来进行设置 自动恢复:一旦事件发生并被处理后,自动恢复到没有事件的状态,不需要再次设置。 相 阅读全文
posted @ 2020-04-18 20:12 坦坦荡荡 阅读(70) 评论(0) 推荐(0)
摘要:C++使用内核对象Mutex来实现线程同步锁。当两个或者更多线程需要同时访问一个共享资源时,Mutex可以只向一个线程授予对共享资源的独占访问权,如果第一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,知道第一个线程释放该互斥体 相关API函数: 创建互斥量 CreateMutex(); 阅读全文
posted @ 2020-04-18 16:29 坦坦荡荡 阅读(120) 评论(0) 推荐(0)
摘要:可以允许N个线程在同一时间访问同一资源 相关API函数: 创建信号量: CreateSemaphore(); HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // 安全属性,NULL为默认 LONG lInit 阅读全文
posted @ 2020-04-18 15:19 坦坦荡荡 阅读(286) 评论(0) 推荐(0)
摘要:死锁是指多个线程因为竞争资源而造成的一种僵局(互相等待)若无外力作用,这些进程都将无法向前推进 死锁产生的必要条件: 1).互斥条件:一个资源每次只能被一个进程使用 2).请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放 3).不可剥夺条件:进程已获得的资源,在未使用完之前,不能强 阅读全文
posted @ 2020-04-18 15:06 坦坦荡荡 阅读(116) 评论(0) 推荐(0)
摘要:临界区结构对象 CRITICAL_SECTION; //初始化临界区 InitializeCriticalSection(&Section) //进入临界区 EnterCriticalSection(&Section) //尝试进入临界区 TryEnterCriticalSection(&Secti 阅读全文
posted @ 2020-04-01 09:41 坦坦荡荡 阅读(170) 评论(0) 推荐(0)
摘要:异步:好比赛跑,各跑各的,互不打扰 同步:好比接力赛,必须接棒后才能跑 互斥:好比独木桥,一次只能过一个 线程互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的 线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这 阅读全文
posted @ 2020-04-01 09:18 坦坦荡荡 阅读(613) 评论(0) 推荐(0)
摘要:CreateThread创建线程,成功返回线程句柄,失败返回NULL HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, //指向SECURITY_ATTRIBUTESX形态的结构指针。NULL为使用默认安全性 DWORD d 阅读全文
posted @ 2020-03-31 18:08 坦坦荡荡 阅读(618) 评论(0) 推荐(0)