- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我处于需要将 boost::thread::id 放入变量中的情况,但该变量不是字符串,也不允许进行字符串操作。这可能吗?
也许是这样
char *tid = (casting something) boost::this_thread::get_id()
这是unix系统上的c++。之所以避免使用字符串操作是因为它会降低整个应用程序的速度。之前谢谢。
最佳答案
无论如何,您的问题似乎完全基于误解。如果要将 boost::thread::id
放入变量中,该变量的类型应为 boost::thread::id
。像这样:
boost::thread::id MyVariable = boost::thread::get_id();
根本不涉及字符串。为什么要尝试将其转换为 char *
?
如果您的线程需要如此频繁地获取它们的 ID 以致于造成瓶颈,那么您很可能做错了一些可怕的事情。为什么您如此需要一个线程的 ID?
更新:好的,所以您需要一个具有特定语义的线程 ID。您需要分配 具有所需语义的线程 ID。 (不能保证线程已有的任何 ID 都可以用在文件名中。)在伪代码中:
或者,您的平台可能具有提供所需语义的功能。例如Linux有gettid
,NT有GetCurrentThreadId
。
关于c++ - Boost::this_thread::get_id() 无字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924762/
我可以通过以下方式将线程 ID 打印到控制台: cout Windows -> Threads -> [ID column] 如果我在 Debug -> Windows -> Threads 中按此
std::this_thread::get_id 是否独立于调用它的线程的创建方式(无论是通过 std::thread 还是 OpenMP 或 pthreads 或操作系统 API)? 最佳答案 是的
我想通过boost::thread::get_id和GetCurrentThreadId获取线程id。 但结果却不同。 我使用 boost::thread 来做多线程。为什么同一个线程使用 get_i
我处于需要将 boost::thread::id 放入变量中的情况,但该变量不是字符串,也不允许进行字符串操作。这可能吗? 也许是这样 char *tid = (casting something)
这两个代码有什么区别?什么是最好/最快的方法。尝试制作我自己的 WM_TIMER 线程。 第一个:timerThreadProc 使用 get_id() DWORD WINAPI timerThrea
当使用 c++11 编译器在 CodeBlocks 上使用 std::this_thread::get_id() 时,线程编号从 2 开始。每次我运行下面的代码时,它都会打印线程 2 - 6 而不是
我想测试调用我的一个类的不同函数的线程。我有一个关键时间线程,我不希望任何人调用一个可能调用 new 的函数,以便从该线程调用。但是,由于这 2 个函数是公共(public)的,我无法通过语言强制执行
我正在尝试将 peewee 与 Flask-login 结合使用,但现在在实现 get_id() 方法时遇到了麻烦。正在关注the example as given by this tutorial
在阅读Boost的线程管理部分documentation ,我在“默认构造函数”下看到以下内容: Postconditions: this->get_id()==thread::id() 我知道 th
void Test { boost::thread::id id0 = boost::this_thread::get_id(); int iThreadId = id0; //
是否可以用十进制或八进制格式计算 thread::id? std::cout // ... std::cout << std::oct << boost::this_thread::get_id()
标题说明了一切:) #include #include int main() { std::thread threads[2]; for (int i = 0; i #inclu
我尝试转换为 void* 并使用 %p。我还尝试过格式为 %lx 的 intptr_t。两次我都收到“Invalid Cast”错误。 我正在使用 -Wall -Werror 检查 printf()
我有一个相当简单的 C++ 应用程序,其中有几个线程 - 主线程和一个工作线程。工作线程等待通过网络发送的数据包,并在收到断开连接时调用 exit(0)。 这会导致负责线程的类的析构函数运行。这个析构
C++11 函数有什么区别get_id()和 native_handle() ? 在我创建的测试程序中,它们返回相同的 int他们线程的值(value)所以我不知道有什么区别。 我在 Windows
我终于让 flask-login + flask-ldap3-login 一起工作了,当我调用 current_user.get_id() 时,我得到一个像 "uid=myuid,ou=people,
我的 User 类没有继承自 UserMixin,而是定义了它自己的 flask-login 所需的成员和函数。 登录过程仅在我设置 get_id() 以返回实例电子邮件时才有效。如果我尝试在用户名或
我目前正在努力让 C++ 应用程序在 Windows 和 Linux 中编译,在一些调试过程中我发现 std::this_thread::get_id().hash() 不能在 Linux 上使用 g
这曾经工作得很好(然后外星人一定黑了我的电脑): #include #include int main() { std::cout << std::this_thread::get_id(
我正在尝试编译一个简单的 boost 程序,该程序在 ubuntu 14.04 上使用线程(使用 boost 1.54)。 编译后的输出是这样的: 09:30:25 **** Incremental
我是一名优秀的程序员,十分优秀!