线程
文章平均质量分 96
线程
我叫侯万楼
料青山见我应如是
展开
-
C++ 线程 任务队列
任务队列有点像windows的消息循环,有任务被压进队列就执行任务,否者就一直等待任务的到来。这样做的好处是外部程序不需要关心队列线程中的同步,只需要将任务压进队列即可,非常的方便。比如现在有一个下载任务要做,没有线程队列的情况下要自己创建线程,编写线程回调,在线程中下载并写文件落盘,必要的时候还要通知界面下载进度,下载完成后还要将线程销毁,有一系列的细节要处理。有了任务队列后只需要编写下载任务,...原创 2020-01-18 12:55:00 · 4903 阅读 · 1 评论 -
C++ 线程 死锁
使用线程时候,稍不注意就会发生死锁。A线程独占A资源,B线程独占B资源,这个时候A线程希望占用B资源,而B资源在没有释放所有权的时候又去尝试占用A资源,这个时候AB线程就永远处于相互等待状态,也就是死锁了。1、单个线程死锁单线程死锁情况比较简单,就是一个线程申请了锁,还没释放又去申请一次。代码如下:#include <thread>#include <mutex&...原创 2020-01-11 11:48:14 · 878 阅读 · 0 评论 -
C++ 线程 线程同步
当多个线程或者进程同时访问公共资源的时候就需要同步。比如说一个线程准备访问堆上的一块内存,另外的一个线程把他给释放了但是还没有来得及设置为空,那么就会出现问题,这个时候就应该线程同步,比如让第一个线程判空访问完了,第二个线程在释放置空;或者让第二个线程释放置空完了,第一个线程在进行判空访问。简单的说线程同步就是将原本在同一时间访问同一资源的线程,让他们有时间顺序的访问资源,即确保公共资源不被同...原创 2020-01-04 15:24:38 · 2282 阅读 · 0 评论 -
C++ 线程 第一次使用
经常会遇到以下场景:1、在界面程序中执行某个耗时操作: 界面的UI消息循环运行在某一个单独的线程中,一般是主线程,这个时候如果有一个耗时的操作,比如说是下载,如果也放到UI线程中去,那么界面线程就会阻塞在下载操作那儿,导致界面卡死,这个时候就要将下载操作放到线程中去。2、守护线程: 我们希望监视某件事情是否发生,比如监视某一个服务是否停止,如果停止就将它重新启动,...原创 2019-12-28 17:35:27 · 197 阅读 · 0 评论