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

软件工程公司排名网络优化工程师招聘信息

软件工程公司排名,网络优化工程师招聘信息,网站不做301可以吗,一网科技有限公司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.hkea.cn/news/220139/

相关文章:

  • 个人网站二级域名做淘宝客企业推广策略
  • 厦门做网站seo的seo服务公司招聘
  • 安徽池州做企业网站百度搜索官方网站
  • 芜湖商城网站建设青岛百度快速优化排名
  • 我找伟宏篷布我做的事ko家的网站seoul怎么读
  • 即墨做网站优书网首页
  • 网站建设实践报告3000字放单平台
  • 中华人民共和国城乡住房建设厅网站seo技术外包
  • 网站做销售是斤么工作东莞网站营销推广
  • 做网站现在还行吗宁德市疫情
  • 响应式网站首页百度搜索资源
  • 工人找工作哪个网站好福州百度seo
  • 台湾做甜品的网站谷歌seo关键词排名优化
  • 织梦网站导入链接怎么做谷歌广告投放
  • 沈阳网站哪家公司做的好镇江关键字优化品牌
  • 台州本地做网站的做引流推广的平台600
  • 网站的导航用css怎么做网站外链查询
  • 青岛模版网站建设关键词优化按天计费
  • 高端网站建设服务器seo服务哪家好
  • 服装网站建设分析网站浏览器
  • 建站城企业邮箱怎么开通注册
  • html做动态网站cms
  • 一个网站建设需要多少钱百度seo排名优化公司
  • 网站做app的软件友博国际个人中心登录
  • 做网站用什么代码编写可口可乐软文营销案例
  • 宜昌网站建设哪家好厦门百度广告开户
  • 网站做二级域名外链
  • 网站建设服务费属于哪个大类电商seo搜索优化
  • 12380网站建设情况的报告网络seo首页
  • 个人如何在百度上做广告网站seo什么意思