c - 在 C 语言中,为什么只在初始化已创建线程列表后才调用 pthread_join?

标签 c multithreading

我明白两者的作用,但我对 pthread_join 的行为有疑问。

我注意到这种模式在 C 中很常见(注意伪代码):

for i in some range:
    thread[i] = pthread_create (...)

for i in some range:
    pthread_join(&thread[i]...)

为什么不能同时发生呢?例如:

for i in some range:
    thread[i] = pthread_create (...)
    pthread_join(&thread[i]...)

最佳答案

因为如果您这样做,所有线程都会按顺序运行,因为 pthread_join 会等待线程终止。

所以你失去了同时运行线程的好处,很简单。

关于c - 在 C 语言中,为什么只在初始化已创建线程列表后才调用 pthread_join?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668779/

相关文章:

python - 处理队列所必需的线程锁+Python

C : running a compiled function from ram

c - 是否有标准 mtx_t 'invalid' 状态?

c - 当套接字上可以进行 I/O 时通知线程

android - 选择列表首选项时执行操作

c# - 如何在 C# 中的后台线程上执行异步数据库调用

c# - BackgroundWorker DoWork 线程的堆栈大小是多少?有办法改变吗?

c - 为什么 strlen() 起作用而我的方法不起作用?

c - 从时区或 IP 地址获取 GPS 坐标

c - 如何为void函数指针数组分配内存并为数组分配地址