We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
engine包含多个scheduler,每个scheduler在独立的线程里运行。
scheduler在独立线程中执行,它初始化后就会进入主循环。在没有worker的情况下,scheduler不会退出。
worker有自己的可执行任务列表,不在列表中的任务将不会分发给worker。worker有一个队列,其中的任务会从前到后依次执行,队列的实现是std::queue。
worker的运行流程如下,注意,如果worker在fiber中执行,下面的每个都是在切换到fiber后执行的。
当worker获取的share或group数据的owner已经析构时,worker会进入退出状态。
综上,需要实现以下类和函数:
1. engine - broadcast_task<T_task>(const T_task& t) - terminate() 2. scheduler - create_worker<T_worker>() - remove_worker(size_t worker_id) - update() - enqueue_task<T_task>(const T_task& t) - dequeue_task() - resume_worker() - terminated() 3. worker - lock_data<T_data ...>() - unlock_data<T_data ...>() - run_task<T_task>() - yield() - setup_owner() - setup_data() - bind_data() - unbind_data() - terminate() 4. task - run(T1& t1, T2& t2, ...)
The text was updated successfully, but these errors were encountered:
开发中……newcore.zip
Sorry, something went wrong.
No branches or pull requests
新的RGM核心调度规则
20230717 运行流程设计
engine包含多个scheduler,每个scheduler在独立的线程里运行。
scheduler在独立线程中执行,它初始化后就会进入主循环。在没有worker的情况下,scheduler不会退出。
worker有自己的可执行任务列表,不在列表中的任务将不会分发给worker。worker有一个队列,其中的任务会从前到后依次执行,队列的实现是std::queue。
worker的运行流程如下,注意,如果worker在fiber中执行,下面的每个都是在切换到fiber后执行的。
当worker获取的share或group数据的owner已经析构时,worker会进入退出状态。
综上,需要实现以下类和函数:
The text was updated successfully, but these errors were encountered: