当前位置: 首页 > news >正文

长腿蜘蛛wordpress优化大师是干什么的

长腿蜘蛛wordpress,优化大师是干什么的,空间设计师接单平台,珠海网站建设排名1. 生产者线程 思路:队列满了的情况下, 触发条件变量wait, 等待消费线程消费后唤醒继续生产. void ProducerThreadFunc() {while(1) { while(/* 容器已满 */) { /* 线程等待, 直到消费者消费后唤醒继续执行 */ }/* 生产动作 */ } }2. 消…

1. 生产者线程


思路:队列满了的情况下, 触发条件变量wait, 等待消费线程消费后唤醒继续生产.

void ProducerThreadFunc()
{while(1) {            while(/* 容器已满 */) {      /* 线程等待, 直到消费者消费后唤醒继续执行 */      }/* 生产动作 */   }   
}

2. 消费者线程


思路: 队列中没有元素可以被消费的情况下, 触发条件变量wait, 等待生产线程生产元素之后唤醒继续消费.

// 伪代码
void ConsumerThreadFunc()
{while(1) {            while(/* 容器为空 */) {          /* 线程等待, 直到生产者生产后唤醒继续执行 */    }/* 消费动作 */        }        
}

3. 完整代码


#include <iostream>#include <vector>
#include <condition_variable>
#include <mutex>
#include <thread>
#ifdef __linux__
#include <unistd.h>
#else
#include <windows.h>
#endifusing namespace std;void Run_EveryWhere_Sleep(int time)
{
#ifdef __linux__sleep(time);
#else Sleep(time * 1000);
#endif
}class TestClass
{
public:int Exec(){std::thread thread_consumer(&TestClass::ConsumerThreadFunc, this);        std::thread thread_producer(&TestClass::ProducerThreadFunc, this);thread_consumer.join();thread_producer.join();return 0;}void ProducerThreadFunc(){while(1) {   // 使用while防止虚假唤醒         while(m_vecNums.size() >= 10) {      std::cout << "Producer Thread Wait, Current Size = " << m_vecNums.size() << endl;      unique_lock<std::mutex> locker(m_mutex);m_cv.wait(locker);    }int num = rand();std::cout << "Produce One Number " << num << std::endl;            m_vecNums.emplace_back(num);m_cv.notify_all();Run_EveryWhere_Sleep(1);}   }void ConsumerThreadFunc(){while(1) {    // 使用while防止虚假唤醒        while(m_vecNums.size() <= 0) {      std::cout << "Consumer Thread Wait, Current Size = " << m_vecNums.size() << endl;      unique_lock<std::mutex> locker(m_mutex);m_cv.wait(locker);    }std::cout << "Consume One Number " << m_vecNums[m_vecNums.size() - 1] << std::endl;m_vecNums.pop_back();m_cv.notify_all();Run_EveryWhere_Sleep(1);}        }private:vector<int> m_vecNums;          /// > 生产消费对象存储容器condition_variable m_cv;        /// > 条件变量mutex m_mutex;                  /// > 配合条件变量使用
};int main(int argc, char **argv)
{TestClass A;return A.Exec();
}

4. 执行效果


[root@localhost condition_var_test]# g++ main.cpp -lpthread
[root@localhost condition_var_test]# ./a.out 
Produce One Number Consumer Thread Wait, Current Size = 1804289383
Produce One Number 846930886
Consume One Number 846930886
Produce One Number 1681692777
Consume One Number 1681692777
Produce One Number 1714636915
Consume One Number 1714636915
Produce One Number 1957747793
Consume One Number 1957747793
Produce One Number 424238335
Consume One Number 424238335
http://www.khdw.cn/news/29384.html

相关文章:

  • 度娘网站桃花怎么做营销策划与运营方案
  • 专业做网站费用上海网络排名优化
  • 商业网站建设目标百度推广怎么运营
  • 东莞建工集团企业网站互联网营销方式
  • 淄博学校网站建设哪家好兰州网络推广推广机构
  • 有做微推客的网站吗网站排名查询alexa
  • 企业怎么做好网站优化上海有哪些优化网站推广公司
  • 网站 建设十大seo公司
  • 如何制作一个生日小程序青岛seo外包服务
  • 阿里云搭建wordpress长沙网站seo推广公司
  • 怎么做网站的浏览栏seo外包资讯
  • 保定模板建站定制网站深圳网络推广案例
  • 行业协会网站建设的方案关键词在线下载
  • 做专柜品牌特卖的网站公司的网站
  • 广州网站 制作信科便宜怎样做一个自己的网站
  • 长沙做网站公司优书网首页
  • 网站建设项目公告腾讯企点
  • 前端开发是做网站的吗seo外链平台
  • 网站建设刂搜金手指下拉贰肆合肥网站推广助理
  • 做网站的话术百度推广代理商查询
  • 网站开发公司简介怎么写长沙网站seo收费
  • 专门做肥料外贸的网站seo项目优化案例分析文档
  • 网站设计步骤桂平seo快速优化软件
  • 武汉市内做网站的公司郑州网站推广多少钱
  • 网站建设收费标准微信小程序建站
  • 海南省建设网站的公司电话号码营销成功的案例
  • 关于做网站的英语对话百度网盘搜索引擎入口
  • 专业网站建设制作价格微博指数查询
  • 可以自己做网站经营吗关键词智能优化排名
  • 建设一个网站需要学习什么石家庄最新疫情最新消息