使用pthread_create()创建1000多个线程
creating more than 1000 threads using pthread_create()
我正在尝试使用pthread_create()
函数创建1000个线程。
这是我正在使用的语句:
for (int i=0 ; i <1000; i++)
{
retValue = pthread_create(&threadId, NULL, simplethreadFunction, NULL);
}
每次运行此循环是否会创建一个新线程?
这很简单。但是我无法理解。
每次运行此循环是否会创建一个新线程?
是的。
这很简单。但是我无法理解。
我会添加一些点:
-
函数pthread_create的第一个参数是指向pthread_t的指针类型。基本上,您将此函数传递给此功能的地址,该功能用于分配"某物"。
当此功能创建一个线程时,为此线程创建了一个"不透明的,唯一的标识符",并将您传递的指针指向此位置,以便您以后(如果需要)访问它。
-
如果您将通过相同的指针将所有1000次传递,则只能使用一个(最后一个)线程访问所有1000的唯一标识符,因为每次上一个值时,写。
-
如果要在线程上执行进一步的操作(例如加入等),则需要此唯一值。
。 -
有关此功能和其他线程相关功能的详细信息,您可以使用此功能。
-
不要忘记在您的主要上下文中调用pthread_exit,否则完成程序(包括创建线程)甚至可能在所有线程完成之前终止。
在时间上,就我认为的时间而言,这东西可能不会对创建时间产生任何影响,只会降低您创建的线程的可用性。另外,这次您正在计算不是创建1000个线程的时间,而是取决于许多其他因素,例如平台/实现等。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在C++中使用cURL和多线程
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在cuda线程之间共享大量常量数据
- 如何将元素添加到数组的线程安全函数?
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 异常属于C++中的线程还是进程
- C++中的线程安全删除
- C++使用params创建线程函数会导致转换错误
- 类与私有变量的其他类之间的线程安全性
- CoInitialize()在单独的线程上崩溃而不返回
- c++中的线程池
- 线程之间的布尔停止信号
- 为什么std::async使用同一个线程运行函数
- 如何在没有同步的情况下使用多个线程(2、4,8、16 个线程)在循环(10,100、1000 个周期)中打印字符串?
- 使用pthread_create()创建1000多个线程
- Pthreads池,保持1000个打开线程,pthread_create()返回11