草庐IT

Thread_pool_pattern

全部标签

c++ - std::thread 的 drd 和 helgrind 支持的当前状态

当我将我的代码转换为C++11时,我非常想将我的pthread代码转换为std::thread。但是,我似乎在drd和helgrind中的非常简单的程序中遇到了错误的竞争条件。#includeintmain(intargc,char**argv){std::threadt([](){});t.join();return0;}Helgrind输出片段-我在drd中也遇到了类似的错误,在Ubuntu11.11amd64上使用gcc4.6.1、valgrind3.7.0。我的问题是:健全性检查:我做错了什么吗?其他人是否在简单的std::thread程序上收到类似的错误报告?std::thr

c++ - 为什么 std::condition_variable 作为类成员会导致 std::thread 出现编译错误?

我尝试将std::condition_variable作为类成员,但在将此类的对象传递给std::thread时出现了很多编译错误。我从我的实际程序中删除了所有其他代码,并以下面的最小代码结束。删除std::condition_variable不会导致任何问题。我尝试在构造函数中“初始化”变量,并使其成为inline,但都没有帮助。#include#includestructThreadHandler{voidoperator()(){}std::condition_variablecond;};intmain(){ThreadHandlerth1;std::threadt1(th1)

c++ - Mingw32 是否支持 std::thread?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowtoenableexperimentalC++0xconcurrencyfeaturesinMinGW?我的mingw32版本(gcc版本是4.5.2)没有自带std::thread类。有没有支持std::thread的mingw32版本?

java - 将 Thread/Runnable 实现从 Java 转换为 Kotlin

我有一个现有的Java类ThreadUtils,其方法every如下所示:publicclassThreadUtil{publicstaticThreadevery(intseconds,Runnabler){Threadt=newThread(()->{while(true){r.run();try{Thread.sleep(1000*seconds);}catch(InterruptedExceptione){return;}}});t.start();returnt;}}我正在尝试将其转换为Kotlin。我对Runnable关闭有点犹豫。这失败了一个错误的return:funev

java - 将 Thread/Runnable 实现从 Java 转换为 Kotlin

我有一个现有的Java类ThreadUtils,其方法every如下所示:publicclassThreadUtil{publicstaticThreadevery(intseconds,Runnabler){Threadt=newThread(()->{while(true){r.run();try{Thread.sleep(1000*seconds);}catch(InterruptedExceptione){return;}}});t.start();returnt;}}我正在尝试将其转换为Kotlin。我对Runnable关闭有点犹豫。这失败了一个错误的return:funev

c++ - 使用 C++11 std::thread native_handle 以及我是否需要 CloseHandle

我开始练习使用C++11std::thread。通常,对于Win32,只要我有线程句柄,我就需要调用CloseHandle。当我使用C++11native_handle时,是否仍需要调用CloseHandle?另外,如果我不使用C++11native句柄,线程句柄是否得到正确清理? 最佳答案 当然不是。线程对象有一个析构函数,它释放对象可能获取的任何操作系统特定资源。实际上,每个(好的)C++对象都有一个析构函数,可以清除需要清理的所有内容,并且这个析构函数(当代码编写正确时)由程序自动调用。这个习语被称为RAII-每个对象都有一个

windows - 我可以在 Windows 上使用 std::thread 吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowtoenableexperimentalC++0xconcurrencyfeaturesinMinGW?TDM-GCC提示error:'thread'isnotmemberof'std'使用g++test.cpp-std=c++0x构建时

windows - 如何从命令行设置 Sphinx 的 `exclude_patterns`?

我在Windows上使用Sphinx。我的大部分文档都是针对普通用户的,但也有一些子页面的内容仅供管理员使用。所以我想构建我的文档的两个版本:一个完整​​版本和一个排除了“管理”页面的第二个版本。我使用了exclude_patternsinthebuildconfiguration为此。到目前为止,它有效。当我将其放入conf.py文件时,忽略名称包含“admin”的每个子文件夹中的每个文件:exclude_patterns=['**/*admin*']问题是我想运行构建一次以获得两个版本。我现在要做的是运行make.bat两次并在每次运行时提供不同的参数。根据thedocumenta

c++ - 为什么即使我设置了 THREAD_MODE_BACKGROUND_BEGIN,我的程序还是资源消耗大户?

我有一个结构如下的程序,它是一个巨大的CPUpig。整个系统的IO变慢,我几乎无法移动鼠标指针......为什么?我认为THREAD_MODE_BACKGROUND_BEGIN应该阻止这种情况?#pragmaompparallel{SetThreadPriority(GetCurrentThread(),THREAD_MODE_BACKGROUND_BEGIN);#pragmaompforfor(...){doTruckLoadsOfComputation();if(omp_get_thread_num()==0)doTinyAmountOfIO();//progressindicat

c++ - 如何获取 std::locale 的日期和时间的当前 "localized pattern"

到目前为止,我能够获取当前语言环境,但我想获取该特定语言环境的日期格式。这可以用标准库来完成吗?#includeint_tmain(intargc,_TCHAR*argv[]){//Printthecurrentlocalestd::cout 最佳答案 如果您只想将日期转换为相应的字符串,您可以使用std::time_put:#include#include#include#includestd::stringget_date_string(conststd::time_t&input_time,conststd::locale&l