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

个人网站备案资料ajax做购物网站

个人网站备案资料,ajax做购物网站,wordpress 众筹模板,在哪里建网站好1、使用程序#xff0c;一个简单的加法运算程序 #include iostream #include workflow/WFTaskFactory.h #include errno.h// 直接定义thread_task三要素 // 一个典型的后端程序由三个部分组成#xff0c;并且完全独立开发。即#xff1a;程序协议算…1、使用程序一个简单的加法运算程序 #include iostream #include workflow/WFTaskFactory.h #include errno.h// 直接定义thread_task三要素 // 一个典型的后端程序由三个部分组成并且完全独立开发。即程序协议算法任务流。// 定义INPUT struct AddInput {int x;int y; };// 定义OUTPUT struct AddOutput {int res; };// 加法流程 void add_routine(const AddInput *input, AddOutput *output) {output-res input-x input-y; }using AddTask WFThreadTaskAddInput, AddOutput;void callback(AddTask *task) {auto *input task-get_input();auto *output task-get_output();assert(task-get_state() WFT_STATE_SUCCESS);fprintf(stderr, %d %d %d\n, input-x, input-y, output-res); }int main() {using AddFactory WFThreadTaskFactoryAddInput, AddOutput;AddTask *task AddFactory::create_thread_task(add_task,add_routine,callback);AddInput *input task-get_input();input-x 1;input-y 2;task-start();getchar();return 0; }2、类继承关系 WFThreadTaskFactory代码 // src/factory/WFTaskFactory.h templateclass INPUT, class OUTPUT class WFThreadTaskFactory { private:using T WFThreadTaskINPUT, OUTPUT;... public:static T *create_thread_task(const std::string queue_name,std::functionvoid (INPUT *, OUTPUT *) routine,std::functionvoid (T *) callback);... };// src/factory/WFTaskFactory.inl templateclass INPUT, class OUTPUT WFThreadTaskINPUT, OUTPUT * WFThreadTaskFactoryINPUT, OUTPUT::create_thread_task(const std::string queue_name,std::functionvoid (INPUT *, OUTPUT *) routine,std::functionvoid (WFThreadTaskINPUT, OUTPUT *) callback) {return new __WFThreadTaskINPUT, OUTPUT(WFGlobal::get_exec_queue(queue_name),WFGlobal::get_compute_executor(),std::move(routine),std::move(callback)); }__WFThreadTask代码 // src/factory/WFTaskFactory.inl templateclass INPUT, class OUTPUT class __WFThreadTask : public WFThreadTaskINPUT, OUTPUT { protected:virtual void execute() //实现ExecSession的纯虚函数{this-routine(this-input, this-output); //执行用户程序的routine}protected:std::functionvoid (INPUT *, OUTPUT *) routine;public:__WFThreadTask(ExecQueue *queue, Executor *executor,std::functionvoid (INPUT *, OUTPUT *) rt,std::functionvoid (WFThreadTaskINPUT, OUTPUT *) cb) :WFThreadTaskINPUT, OUTPUT(queue, executor, std::move(cb)),routine(std::move(rt)){} };WFThreadTask代码 // src/factory/WFTask.h templateclass INPUT, class OUTPUT class WFThreadTask : public ExecRequest { public:void start();void dismiss();INPUT *get_input() { return this-input; }OUTPUT *get_output() { return this-output; }void *user_data;int get_state() const { return this-state; }int get_error() const { return this-error; }void set_callback(std::functionvoid (WFThreadTaskINPUT, OUTPUT *) cb); protected:virtual SubTask *done();protected:INPUT input;OUTPUT output;std::functionvoid (WFThreadTaskINPUT, OUTPUT *) callback;public:WFThreadTask(ExecQueue *queue, Executor *executor,std::functionvoid (WFThreadTaskINPUT, OUTPUT *) cb) :ExecRequest(queue, executor),callback(std::move(cb)){// 初始化}protected:virtual ~WFThreadTask() { } };ExecRequest代码 // src/kernel/ExecRequest.h class ExecRequest : public SubTask, public ExecSession { public:ExecRequest(ExecQueue *queue, Executor *executor);ExecQueue *get_request_queue() const { return this-queue; }void set_request_queue(ExecQueue *queue) { this-queue queue; }virtual void dispatch() // 实现SubTask的纯虚函数这个纯虚函数主要是任务的开始执行接口{this-executor-request(this, this-queue);...}protected:int state;int error;ExecQueue *queue;Executor *executor;protected:virtual void handle(int state, int error); // 实现ExecSession的纯虚函数 }; SubTask代码 class SubTask {// 子任务被调起的时机virtual void dispatch() 0;// 子任务执行完成的时机virtual SubTask *done() 0;// 内部实现决定了任务流走向void subtask_done();... };ExecSession代码 /src/kernel/Executor.h class ExecSession { private:virtual void execute() 0;virtual void handle(int state, int error) 0;protected:ExecQueue *get_queue() { return this-queue; }private:ExecQueue *queue;... };继承关系图 __WFThreadTask__目前还未用到暂不清楚 3、两个重要成员: ExecQueue, Executor ExecQueue代码 /src/kernel/Executor.h class ExecQueue {... private:struct list_head task_list;pthread_mutex_t mutex; };Executor代码 /src/kernel/Executor.h class Executor { public:// 一次要执行的接口对于线程执行器来说就是把一个执行任务扔进某个队列中int request(ExecSession *session, ExecQueue *queue);private:// 执行器和系统资源是一个包含关系thrdpool_t *thrdpool; }; request() 函数把任务扔进线程池队列等待执行线程池会从队列拿到这个任务然后执行executor_thread_routine // src/kernel/Executor.cc int Executor::request(ExecSession *session, ExecQueue *queue) {ExecSessionEntry *entry new ExecSessionEntry;session-queue queue;entry-session session;entry-thrdpool this-thrdpool;queue-mutex.lock();list_add_tail(entry-list, queue-session_list);if (queue-session_list.next entry-list){struct thrdpool_task task {Executor::executor_thread_routine, queue};/*{.routine Executor::executor_thread_routine,.context queue};*/if (thrdpool_schedule(task, this-thrdpool) 0){list_del(entry-list);delete entry;entry NULL;}}queue-mutex.unlock();return -!entry; }struct ExecSessionEntry {struct list_head list;ExecSession *session;thrdpool_t *thrdpool; };// src/kernel/Executor.cc void Executor::executor_thread_routine(void *context) {ExecQueue *queue (ExecQueue *)context;ExecSessionEntry *entry;ExecSession *session;queue-mutex.lock();entry list_entry(queue-session_list.next, ExecSessionEntry, list);list_del(entry-list);session entry-session;if (!list_empty(queue-session_list)){struct thrdpool_task task {Executor::executor_thread_routine, queue};/*{.routine Executor::executor_thread_routine,.context queue};*/__thrdpool_schedule(task, entry, entry-thrdpool);}elsedelete entry;queue-mutex.unlock();session-execute(); //这里会执行到用户routinesession-handle(ES_STATE_FINISHED, 0); }4、参考链接 https://github.com/chanchann/workflow_annotation/blob/main/src_analysis/12_thread_task.md https://blog.csdn.net/j497205974/article/details/135554164?spm1001.2014.3001.5502
http://www.w-s-a.com/news/682077/

相关文章:

  • 网上商城网站设计免费咨询口腔科医生回答在线
  • 南京网站c建设云世家 s浏览器
  • 如何做镜像别人网站wordpress菜单对齐修改
  • 长春网站建设net企业公示信息查询官网
  • 金鹏建设集团网站可在哪些网站做链接
  • 电子产品网站开发背景网站关键词优化方案
  • 建网站论坛wordpress提交数据库错误
  • 国内网站建设公司开源网站系统
  • 网站开发公司上大连网站建设流程图
  • 银川网站seo宁波网
  • 个人备案网站会影响吗网站添加 备案
  • 网站建设与电子商务的教案关于旅游网站建设的方案
  • 电子商务网站建设设计原则找做网站找那个平台做
  • 天津高端品牌网站建设韶关网站建设墨子
  • Wordpress多站点为什么注册不了2008iis搭建网站
  • 天津高端网站制作建网站的公司服务
  • 温州网站推广优化类似淘宝的网站怎么做的
  • 网站建设实训考试什么网站做玩具的比较多
  • 上海网站建设特点怎样给公司做一个网站做推广
  • 流量网站怎么做的济南优化排名公司
  • 保定网站制作套餐设计师导航网站大全
  • 惠州 商城网站建设石家庄新闻广播在线收听
  • 洪山网站建设域名购买之后怎么做网站
  • 北京网站建设公司服务哪家好wap是什么意思?
  • 怎么看公司网站做的好不好哦wordpress页面目录下
  • 做装修业务呢有多少网站平台搭建是什么
  • 潍坊优化网站排名淘宝做网站被骗
  • 建设专业网站的利弊免费logo设计生成器下载
  • 怎么在备案号添加网站网页设计动画网站
  • 网站开发 只要wordpress滑动注册