asco 异步运行时
工作线程
工作线程分为 io worker
和 calculating worker
,运行时初始化时将合适的工作线程绑定到某个 CPU 执行。
在 asco
内部,“阻塞“任务被定义为一个任务会完全占用当前工作线程而无法被其它工作线程窃取的任务,它会优先分配给 calculating worker
执行。
而不是通常说的为了等待 IO 而暂停运行的含义。
然而,对于仅基于本框架开发应用程序的用户,为了减少在正常使用过程中的失误,我们避免使用 blocking
这个词汇,而是使用 core
表示。
运行时对象配置
asco::runtime
构造函数仅有一个参数,用于设置工作线程数,参数默认值为0,为0时使用 std::thread::hardware_concurrency()
作为工作线程数。
未来会加入更多配置选项。