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

中文wordpress网站网上怎么做广告

中文wordpress网站,网上怎么做广告,设计师必备网站,wordpress 同步 微信线程池通过一个线程安全的阻塞任务队列加上一个或一个以上的线程实现,线程池中的线程可以从阻塞队列中获取任务进行任务处理,当线程都处于繁忙状态时可以将任务加入阻塞队列中,等到其它的线程空闲后进行处理。 线程池作用: 1.降…

线程池通过一个线程安全的阻塞任务队列加上一个或一个以上的线程实现,线程池中的线程可以从阻塞队列中获取任务进行任务处理,当线程都处于繁忙状态时可以将任务加入阻塞队列中,等到其它的线程空闲后进行处理。

线程池作用:

1.降低资源消耗:通过重用已经创建的线程来降低线程创建和销毁的消耗

2.提高线程的可管理性:线程池可以统一管理、分配、调优和监控

3.降低程序的耦合程度: 提高程序的运行效率

4.多线程程序的运行效率, 是一个正态分布的结果, 线程数量从1开始增加, 随着线程数量的增加, 程序的运行效率逐渐变高, 直到线程数量达到一个临界值, 当在增加线程数量时, 程序的运行效率会减小(主要是由于频繁线程切换影响线程运行效率),所以并不是创建的线程越多性能越高

下面利用原生线程库来实现线程池

大家可以拷贝到VS Code下来看

代码中的一个解释

main.cc

#include<iostream>
#include<unistd.h>
#include<time.h>
#include"threadpool.hpp"using namespace std;int main()
{srand(time(nullptr) ^ getpid());ThreadPool<Task>* tp=new ThreadPool<Task>;tp->Start();while(true){//1. 构建任务int x = rand() % 10 + 1;usleep(10);int y = rand() % 5;char op = opers[rand()%opers.size()];Task t(x, y, op);tp->Push(t);//2. 交给线程池处理std::cout << "main thread make task: " << t.GetTask() << std::endl;sleep(1);}return 0;
}

threadpool.hpp

#pragma once
#include <iostream>
#include <vector>
#include <string>
#include <queue>
#include <pthread.h>
#include "task.hpp"using namespace std;struct ThreadInfo
{pthread_t tid;string name;
};template <class T>
class ThreadPool
{
public:void Lock(){pthread_mutex_lock(&mutex_);}void Unlock(){pthread_mutex_unlock(&mutex_);}void Threadsleep(){pthread_cond_wait(&cond_, &mutex_);}void Wakeup(){pthread_cond_signal(&cond_);}bool IsQueueEmpty(){return tasks_.empty();}string GetThreadName(pthread_t tid){for (const auto &ti : threads_){if (ti.tid == tid)return ti.name;}return "None";}public:ThreadPool(int num = 5) : threads_(num){pthread_mutex_init(&mutex_, nullptr);pthread_cond_init(&cond_, nullptr);}static void *HandlerTask(void *args) // 必须定义为静态函数,这样才不会传this指针过来,才不会导致函数不匹配问题{ThreadPool<T> *tp = static_cast<ThreadPool<T> *>(args);string name=tp->GetThreadName(pthread_self());while(true){tp->Lock();while(tp->IsQueueEmpty()){tp->Threadsleep();}//消费任务T t=tp->Pop();tp->Unlock();//处理任务t();cout <<name << " run, "<< "result: " << t.GetResult() <<endl;}return nullptr;}void Start(){int size = threads_.size();for (int i = 0; i < size; i++){threads_[i].name= "thread-" + to_string(i + 1);pthread_create(&(threads_[i].tid), nullptr, HandlerTask, this); // 传入this指针,使静态函数可以访问类内成员和函数}}T Pop(){T out=tasks_.front();tasks_.pop();return out;}void Push(const T& in){//需要加锁Lock();tasks_.push(in);Wakeup();Unlock();}~ThreadPool(){pthread_mutex_destroy(&mutex_);pthread_cond_destroy(&cond_);}private:vector<ThreadInfo> threads_; // 用数组管理创建出来的线程queue<T> tasks_;             // 用队列来管理任务pthread_mutex_t mutex_;pthread_cond_t cond_;
};

Task.hpp

#pragma once
#include <iostream>
#include <string>using namespace std;
string opers="+-*/%";enum
{Divzero = 1,Modzero,Unknown
};class Task
{
public:Task(){}Task(int data1, int data2, char op) : _data1(data1), _data2(data2), _op(op), _result(0), _exitcode(0){}void run(){switch (_op){case '+':{_result = _data1+_data2;break;}case '-':{_result = _data1-_data2;break;}case '*':{_result = _data1*_data2;break;}case '/':{if (_data2 == 0) _exitcode = Divzero;else _result = _data1/_data2;break;}case '%':{if (_data2 == 0) _exitcode = Modzero;else _result = _data1%_data2;break;}default:{_exitcode=Unknown;break;}}}void operator()(){run();}string GetResult(){string r=to_string(_data1);r+=_op;r+=to_string(_data2);r+='=';r+=to_string(_result);r+='[';r+=to_string(_exitcode);r+=']';return r;}string GetTask(){string r=to_string(_data1);r+=_op;r+=to_string(_data2);r+="=?";return r;}private:int _data1;int _data2;char _op;int _result;int _exitcode;
};

http://www.yidumall.com/news/41651.html

相关文章:

  • 有哪些网站可以做按摩广告语优化大师有必要花钱吗
  • 武汉高端网站建设优质的seo网站排名优化软件
  • 广州seo网站策划快速提升关键词排名软件
  • 如何建立微网站详细步骤百度搜索关键词数据
  • 软件推广appseo营销方案
  • cad dwt模板做网站模版百度的推广方式有哪些
  • 深圳做网站推广哪家好武汉网站seo推广
  • 哔哩哔哩做视频网站如何推广店铺呢
  • 做代销的网站怎么推广公众号让人关注
  • 如何做色情网站百度指数的特点
  • wordpress中文主题模板seo内容优化是什么
  • php 网站 下载网页代码
  • 虚拟主机和云服务器的区别上海网站营销seo方案
  • 天津刘金鹏做网站百度竞价托管公司
  • 本地搭建网站百度客服人工电话24小时
  • 培训网站搭建宣传推广方式有哪些
  • 手机网站制作良心服务上海网络营销上海网络推广
  • 专题网站建设意义何在域名大全查询
  • 深圳龙华大浪做网站公司南京网络优化培训
  • 做个素材网网站难做吗百度推广后台登录页面
  • 网站开发模块分类网站优化方案怎么写
  • 网站开发nodejs交换链接营销成功案例
  • 网站建设信息公开和解读回应百度seo排名优化软件化
  • 郑州做网站建设seo快速排名软件app
  • 遂宁市网站建设aso优化排名
  • 交易网站建设计划书公司网站优化
  • 济南专业做网站的公司哪家好百度seo综合查询
  • 网站篡改搜索引擎js楼市最新消息
  • web网页开发基础优化seo设置
  • 工程中标公示查询怎么查合肥seo推广外包