Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 哪些特定于windows的低级函数用于在windows中实现std::thread/boost::thread/pthread?_C++_Multithreading_Pthreads_Std - Fatal编程技术网

C++ 哪些特定于windows的低级函数用于在windows中实现std::thread/boost::thread/pthread?

C++ 哪些特定于windows的低级函数用于在windows中实现std::thread/boost::thread/pthread?,c++,multithreading,pthreads,std,C++,Multithreading,Pthreads,Std,我想知道哪些特定于windows的低级函数用于在windows中实现std::thread/boost::thread/pthread? 谢谢,Win32 API是在Windows上启动线程的核心函数 您需要了解的关于Windows中线程API的大部分信息都可以找到。Win32 API是在Windows上启动线程的核心功能 您需要了解的关于Windows中线程API的大部分信息都可以找到。 内联uintpttr\u t\u beginthreadex(void*安全性、无符号堆栈大小、无符号(\

我想知道哪些特定于windows的低级函数用于在windows中实现std::thread/boost::thread/pthread? 谢谢,Win32 API是在Windows上启动线程的核心函数

您需要了解的关于Windows中线程API的大部分信息都可以找到。

Win32 API是在Windows上启动线程的核心功能

您需要了解的关于Windows中线程API的大部分信息都可以找到。

内联uintpttr\u t\u beginthreadex(void*安全性、无符号堆栈大小、无符号(\u stdcall*起始地址)(void*),
void*arglist,unsigned initflag,unsigned*thrdaddr)
{
德沃德·特莱德;
ThreadProxyData*data=新的ThreadProxyData(起始地址,arglist);
HANDLE hthread=CreateThread(静态转换(安全)、堆栈大小、线程代理、,
数据、initflag和threadID);
if(hthread==0){
删除数据;
返回0;
}
*thrdaddr=线程ID;
返回reinterpret_cast(hthread);
}

内联uintpttr\u t\u beginthreadex(void*安全性、无符号堆栈大小、无符号(\u stdcall*起始地址)(void*),
void*arglist,unsigned initflag,unsigned*thrdaddr)
{
德沃德·特莱德;
ThreadProxyData*data=新的ThreadProxyData(起始地址,arglist);
HANDLE hthread=CreateThread(静态转换(安全)、堆栈大小、线程代理、,
数据、initflag和threadID);
if(hthread==0){
删除数据;
返回0;
}
*thrdaddr=线程ID;
返回reinterpret_cast(hthread);
}

好吧,看看它的实现,它是开源的。你能详细说明一下吗。我对这个领域太陌生了。你可以下载
boost
源代码并检查它吗?你到底想让我解释什么?@πάνταῥεῖ “如果有那么多无人机会帮你查找,为什么还要麻烦自己去查找呢?”MartinJames-Well,讽刺影响。好吧,看看实现,它是开源的。你能详细说明一下吗。我对这个领域太陌生了。你可以下载
boost
源代码并检查它吗?你到底想让我解释什么?@πάνταῥεῖ “如果有那么多无人机会帮你查找,为什么还要费心自己去查找呢?”MartinJames,“嗯,讽刺的影响。我相信会有更微妙的实施细节。我相信会有更微妙的实施细节。
inline uintptr_t _beginthreadex(void* security, unsigned stack_size, unsigned (__stdcall* start_address)(void*),
                                      void* arglist, unsigned initflag, unsigned* thrdaddr)
{
    DWORD threadID;
    ThreadProxyData* data = new ThreadProxyData(start_address,arglist);
    HANDLE hthread=CreateThread(static_cast<LPSECURITY_ATTRIBUTES>(security),stack_size,ThreadProxy,
                                data,initflag,&threadID);
    if (hthread==0) {
      delete data;
      return 0;
    }
    *thrdaddr=threadID;
    return reinterpret_cast<uintptr_t const>(hthread);
}