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

公司网站横幅是做的吗网站快速优化

公司网站横幅是做的吗,网站快速优化,珠海市科速网络技术有限公司,长春是几线城市2020排名线程池的特点#xff1a; 空间换时间,浪费服务器的硬件资源,换取运行效率. 池是一组资源的集合,这组资源在服务器启动之初就被完全创建好并初始化,这称为静态资源. 当服务器进入正式运行阶段,开始处理客户请求的时候,如果它需要相关的资源,可以直接从池中获取,无需动态分配.…线程池的特点 空间换时间,浪费服务器的硬件资源,换取运行效率. 池是一组资源的集合,这组资源在服务器启动之初就被完全创建好并初始化,这称为静态资源. 当服务器进入正式运行阶段,开始处理客户请求的时候,如果它需要相关的资源,可以直接从池中获取,无需动态分配. 当服务器处理完一个客户连接后,可以把相关的资源放回池中,无需执行系统调用释放资源. 工作流程 采用Proactor并发模型主线程负责监听文件描述符接受socket连接若当前监听的socket发生了读写事件就把任务插入到请求队列中工作线程从请求队列中取出任务完成读写数据的处理。 线程池的定义如下 template typename T class threadpool { public:/*thread_number是线程池中线程的数量max_requests是请求队列中最多允许的、等待处理的请求的数量*/threadpool(int actor_model, connection_pool *connPool, int thread_number 8, int max_request 10000);~threadpool();bool append(T *request, int state);bool append_p(T *request);private:/*工作线程运行的函数它不断从工作队列中取出任务并执行之*/static void *worker(void *arg);void run();private:int m_thread_number; //线程池中的线程数int m_max_requests; //请求队列中允许的最大请求数pthread_t *m_threads; //描述线程池的数组其大小为m_thread_numberstd::listT * m_workqueue; //请求队列locker m_queuelocker; //保护请求队列的互斥锁sem m_queuestat; //是否有任务需要处理connection_pool *m_connPool; //数据库int m_actor_model; //模型切换 }; template typename T threadpoolT::threadpool( int actor_model, connection_pool *connPool, int thread_number, int max_requests) : m_actor_model(actor_model),m_thread_number(thread_number), m_max_requests(max_requests), m_threads(NULL),m_connPool(connPool) {if (thread_number 0 || max_requests 0)throw std::exception();m_threads new pthread_t[m_thread_number];if (!m_threads)throw std::exception();for (int i 0; i thread_number; i){if (pthread_create(m_threads i, NULL, worker, this) ! 0){delete[] m_threads;throw std::exception();}if (pthread_detach(m_threads[i])){delete[] m_threads;throw std::exception();}} } template typename T threadpoolT::~threadpool() {delete[] m_threads; } template typename T bool threadpoolT::append(T *request, int state) {m_queuelocker.lock();if (m_workqueue.size() m_max_requests){m_queuelocker.unlock();return false;}request-m_state state;m_workqueue.push_back(request);m_queuelocker.unlock();m_queuestat.post();return true; } template typename T bool threadpoolT::append_p(T *request) {m_queuelocker.lock();if (m_workqueue.size() m_max_requests){m_queuelocker.unlock();return false;}m_workqueue.push_back(request);m_queuelocker.unlock();m_queuestat.post();return true; } template typename T void *threadpoolT::worker(void *arg) {threadpool *pool (threadpool *)arg;pool-run();return pool; } template typename T void threadpoolT::run() {while (true){m_queuestat.wait();m_queuelocker.lock();if (m_workqueue.empty()){m_queuelocker.unlock();continue;}T *request m_workqueue.front();m_workqueue.pop_front();m_queuelocker.unlock();if (!request)continue;if (1 m_actor_model){if (0 request-m_state){if (request-read_once()){request-improv 1;connectionRAII mysqlcon(request-mysql, m_connPool);request-process();}else{request-improv 1;request-timer_flag 1;}}else{if (request-write()){request-improv 1;}else{request-improv 1;request-timer_flag 1;}}}else{connectionRAII mysqlcon(request-mysql, m_connPool);request-process();}} } 详细解释下work函数这个函数不断的检查队列是否为空如果不为空会唤醒线程在处理任务前获取锁。从任务队列头部取出任务释放锁如果取出的任务对象是有效指针如果是Proactor并发模型代表有数据要读调用函数读取客户端数据标记请求已被处理获得数据库连接执行数据库操作。 如果读取失败表示需要进行定时器的处理如果m_stat1那么表示要写入数据写入成功标记请求已经被处理否则设置定时器。 如果不是Proactro模型那么直接处理请求。
http://www.pierceye.com/news/383012/

相关文章:

  • 沈阳养老保险网站手机网站建设ppt
  • 网站培训视频宝安新闻
  • 上海外贸建站推广公司服务专业的网站建设公司
  • 网站上传不了wordpress女孩学电子商务专业好就业吗
  • 石家庄网站开发工程师招聘网蜘蛛互联网站建设
  • 企业网站营销策划衡水企业做网站费用
  • 邯郸网站建设渠道通化网站建设公司
  • 做vip电影网站黑龙江省中国建设银行网站首页
  • 长沙便宜网站建设在线印章生成器
  • 网站编辑的工作内容WordPress添加上传下载
  • 公司网站需求建设银行企业网站首页
  • 一般找素材都是做哪几个网站呢郑州seo外包阿亮
  • 广州个人网站建设公司jsp网站建设模板
  • 全国的网站建设网站建设肆金手指排名7
  • 做网站如何防止被抄袭17zwd一起做网站官网
  • 北京鲜花的网站建设做任务网站有哪些内容
  • 互联网营销网站建设印章在线生成
  • 厦门seo网站管理南宁广告网页设计人才招聘
  • 沂水住房与城乡建设局网站wordpress如何建立论坛
  • 贵州省文化旅游网站建设的必要性查网站流量的网址
  • 自己做的网站怎么传到空间啊平面设计技术培训机构
  • php 做网站xml地图回龙观手机网站开发服务
  • 四川建设工程网上合同备案网站如何重新打开wordpress
  • 免费个人网站模板下载qq邮箱企业邮箱注册
  • 泰兴市网站建设wp怎么打开wordpress
  • wordpress可以建哪些网站吗开发app需要多少人
  • 0基础学做网站什么做网站做个网站一般要多少钱啊
  • 外贸营销型网站建设多少钱wordpress付费浏览
  • 网站空间可以换吗进网站备案
  • 番禺建设网站开发软件工程专业介绍