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

网站商城的公司运营结构自适应网站好建们

网站商城的公司运营结构,自适应网站好建们,自己接单的平台,动漫制作专业什么电脑最适合#x1f60f;★,:.☆(#xffe3;▽#xffe3;)/$:.★ #x1f60f; 这篇文章主要介绍事件驱动库libevent配置使用。 无专精则不能成#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客#xff0c;一起学习#xff0c;共同进步。 喜欢的朋友可以关注一下#xf… ★,°:.☆(▽)/$:.°★ 这篇文章主要介绍事件驱动库libevent配置使用。 无专精则不能成无涉猎则不能通。——梁启超 欢迎来到我的博客一起学习共同进步。 喜欢的朋友可以关注一下下次更新不迷路 文章目录 :smirk:1. 项目介绍:blush:2. 环境配置:satisfied:3. 使用说明 1. 项目介绍 项目Github地址https://github.com/libevent/libevent 官网https://libevent.org/ libevent是一个开源的事件通知库它提供了一个跨平台的接口用于处理事件驱动的编程。它允许开发人员编写高性能、可扩展的网络应用程序和服务器而无需关注底层的网络细节。 以下是libevent库的一些主要特点和功能 1.事件驱动libevent使用事件驱动的方式处理网络和I/O操作。它基于回调机制可以处理各种事件包括网络连接、读写操作、定时器等。 2.跨平台支持libevent可以在多个平台上运行包括Linux、Unix、Windows等。它封装了不同操作系统的底层API使开发人员能够在不同平台上实现相同的功能。 3.高性能libevent被设计成高效的事件通知引擎它使用了高效的I/O多路复用技术如epoll、kqueue等能够同时处理大量的并发连接和事件。 4.可扩展性libevent提供了可扩展的接口和机制开发人员可以自定义事件的处理方式并添加自定义的事件类型。它还支持多线程和多进程编程模型方便实现并发处理。 5.支持多种协议libevent支持多种网络协议包括TCP、UDP、SSL等。它提供了相应的API和功能以便开发人员轻松地构建各种网络应用程序。 6.容易使用libevent具有简洁的API和良好的文档易于学习和使用。它提供了丰富的示例代码和教程帮助开发人员快速上手。 总的来说libevent是一个强大、灵活且高效的事件通知库广泛用于开发网络应用程序、服务器和高性能系统。 2. 环境配置 下面进行环境配置 # apt安装 sudo apt install libevent-dev # 查看版本ubuntu默认2.1.8-stable pkg-config --modversion libevent# 源码安装 tar -zxvf libevent-2.0.22-stable.tar.gz cd libevent-2.0.22-stable/ ./configure make sudo make install3. 使用说明 下面进行使用分析 最简示例 #include event2/event.h #include iostreamvoid eventCallback(evutil_socket_t fd, short events, void* arg) {std::cout Event occurred on socket: fd std::endl; }int main() {// 创建一个event_base对象用于管理事件循环event_base* base event_base_new();if (!base) {std::cerr Failed to create event base. std::endl;return 1;}// 创建一个事件event* ev event_new(base, -1, EV_PERSIST, eventCallback, nullptr);if (!ev) {std::cerr Failed to create event. std::endl;event_base_free(base);return 1;}// 添加事件到事件循环timeval delay { 2, 0 }; // 设定事件触发延迟时间为2秒event_add(ev, delay);// 启动事件循环if (event_base_dispatch(base) -1) {std::cerr Failed to dispatch event base. std::endl;event_free(ev);event_base_free(base);return 1;}// 清理资源event_free(ev);event_base_free(base);return 0; }编译运行 g -o main main.cpp -levent ./main基于libevent的线程池示例 #include event2/event.h #include event2/thread.h #include iostream #include vector #include queue #include mutex #include condition_variable #include functional #include thread// 任务结构体 struct Task {std::functionvoid() function;Task(const std::functionvoid() f) : function(f) {} };// 线程池类 class ThreadPool { public:ThreadPool(int numThreads) : stop(false) {// 初始化libevent线程支持evthread_use_pthreads();for (int i 0; i numThreads; i) {threads.emplace_back([this] {event_base* base event_base_new();if (!base) {std::cerr Failed to create event base. std::endl;return;}// 创建事件来触发任务执行event* ev event_new(base, -1, EV_PERSIST, [](evutil_socket_t fd, short events, void* arg) {ThreadPool* threadPool static_castThreadPool*(arg);threadPool-executeTask();}, this);timeval delay { 0, 1000 }; // 每隔1毫秒触发一次事件event_add(ev, delay);// 执行事件循环event_base_dispatch(base);event_free(ev);event_base_free(base);});}}~ThreadPool() {{std::unique_lockstd::mutex lock(taskMutex);stop true;}taskCondition.notify_all();for (auto thread : threads) {thread.join();}}templateclass Fvoid enqueue(F f) {{std::unique_lockstd::mutex lock(taskMutex);tasks.emplace(new Task(std::forwardF(f)));}taskCondition.notify_one();}private:std::vectorstd::thread threads;std::queueTask* tasks;std::mutex taskMutex;std::condition_variable taskCondition;bool stop;void executeTask() {Task* task nullptr;{std::unique_lockstd::mutex lock(taskMutex);if (tasks.empty()) {return;}task tasks.front();tasks.pop();}task-function();delete task;} };// 示例使用 void taskFunction(int id) {std::cout Task id is being executed. std::endl; }int main() {const int numThreads 4;ThreadPool threadPool(numThreads);std::cout Create numThreads pools... std::endl;// 提交任务到线程池for (int i 0; i 10; i) {threadPool.enqueue([i] {taskFunction(i);});}// 等待所有任务完成std::this_thread::sleep_for(std::chrono::seconds(3));std::cout Task end!!! std::endl;return 0; } 编译运行 g -o main main.cpp -levent -lpthread -levent_pthreads以上。
http://www.tj-hxxt.cn/news/134685.html

相关文章:

  • 做网站的系统功能需求浙江省工程信息网官网
  • 做双语网站多少钱品牌建站
  • 免费门户网站搭建广东莞建建设工程有限公司
  • 门户网站建设要求福州小程序开发公司
  • 2017最新网站设计风格建筑公司企业号
  • 广州响应式网站建设免费虚拟主机管理系统
  • 网站建设案例 杭州远大建设银行网站总是崩溃
  • 免费flash网站源码带后台竞价页面网站做优化
  • 建设网站的源代码的所有权黑彩网站建设需要什么东西
  • 兴宁网站建设联享品牌网站建设公司
  • 义乌网站制作公司网站内页收录突然没了
  • frontpage做的网站好不好河南造价信息网官网
  • 益阳建设局网站古典网站源码
  • 做网站赚广告做网站应达到什么效果
  • 网站建设_推广_网页设计_域名注册_企业邮箱_虚拟主机 新闻wordpress免费资源
  • 网站建设与管理和电子商务哪个好wordpress太难用
  • 设计师网站 知乎济宁专业网站开发公司
  • 抚顺网站开发招聘有没有做书签的网站
  • 免费网站建设视频哪个网站可以做水果销售代理
  • 台州做网站软件网站建设平台对比
  • 网站界面设计案例wordpress页面注册忘记密码
  • 网上商城网站开发公司拼多多网络营销方式
  • 企业网站优化定制ui设计师需要学的软件
  • 国外公共空间设计网站windows 安装 wordpress
  • 游戏网站建设论文网站设计素养
  • 做网站的群海外网站建设
  • 邢台网站建设公司做cpc不做网站可以吗
  • 简诉网站建设的基本流程图北京网站建设怎么样天
  • 商标 做网站 是几类龙岩正规全网品牌营销招商
  • 网站架构方案windows优化大师和鲁大师