workspace
workspace copied to clipboard
workspace是基于C++11的轻量级异步执行框架,支持:通用任务异步并发执行、优先级任务调度、自适应动态线程池、高效静态线程池、异常处理机制等。
假设原来有类似这样一个会产生很高递归栈的函数: ```CPP int fib(int n) { if (n
如果能执行到worker中的 if (enable_steal_tasks) 的代码块,意味着waiting=false,但这又意味着全部任务执行完了,这个时候从其他线程的工作队列拿任务的意义何在?不是全部任务已经没了吗?求懂哥解释
future/promise的异步实现: when_all/when_any/then 是否支持?
关于加速比
您好,我看到你的benchmark中提到了加速比,我主要是没感觉到这个指标的意义是在哪呢? 单线程4个task,200s 然后线程池4个task50s,这是很正常的。。 但是当任务达到8、16的时候,总耗时为啥会减少呢?我没有想到原因,能否解释一下啊
我的编译器是msvc,使用cmake链接你所有头文件重新编译,其中发现了一些问题,其中uint数据类型会报错,size_t数据转换会出现警告;我想说一下,这些数据类型可以换成基本数据类型。
cpu占用异常
老哥,前段时间把你这个线程池用到生产环境了,今天突然发现(之前没注意)cpu占用率一直高达700%多。我线程池数量设置的8,这是把八个核都占满了......且每个线程的cpu占用率都是90%+。 然后我抓堆栈看了一下,好像有一个misson()函数一直在空跑? 不知道这个问题有没有人遇到?或者最新版本已经解决了嘛?
```c++ if (is_waiting) { std::unique_lock locker(lok); task_done_workers++; task_done_cv.notify_one(); thread_cv.wait(locker); } ``` 这是在workbranch.hpp里面的mission函数的一段代码,这段代码最后的 thread_cv.wait(locker) 应该改为 thread_wait(locker,!is_waiting) 吗?否则伪唤醒可能让一个没有任务的线程一直执行yield()函数,导致资源浪费.
CPU高占用
我的CPU是四核,创建workbrach对象的时候会导致CPU高占用 ``` #include int main() { wsp::workbranch br; sleep(10); } ```` 
就不提pr了,直接在这里说了。 一、https://github.com/Lwhyz/workspace/issues/48 提到的: 把 struct callable_size 当以挪到 struct callable_impl 定义的后面 二、CMakeLists.txt 里面的 install 的位置,按照惯例应该在 install_prefix/include 里面,改为如下: ``` # Set library installation path include(GNUInstallDirs) install(DIRECTORY ${LIB_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${LIB_NAME}) ```
请问有没有工程上长时间压测和使用? 即稳定性问题如何判断。 以及,正式版本就是最新main分支的对吗?