gpt4 book ai didi

c++ - pthread_join 期间的段错误

转载 作者:行者123 更新时间:2023-12-02 10:36:30 25 4
gpt4 key购买 nike

#define SIZE 3 
#define MAX_THREADS 9
int main() {

...

pthread_t m_threads[MAX_THREADS];
int t_num = 0;

for (int i = 0; i < SIZE; ++i) {
for (int j = 0; j < SIZE; ++j) {

...

pthread_create(&m_threads[i], NULL, multiply, (void *) &td[t_num]);
t_num++;
}
}

for( int i = 0; i < MAX_THREADS; i++ ) {
pthread_join(m_threads[i], NULL);
}

return 0;
}

我正在创建 9 个线程来做一些矩阵乘法。计算成功。但是当我尝试加入线程时程序崩溃了。程序在执行 pthread_join(m_threads[i], NULL) 时崩溃在 for 循环的第 4 次迭代中。

调试程序我从 GDB 得到这个段错误。

Thread 1 "Pthread" received signal SIGSEGV, Segmentation fault.
0x00007f7d0063ac9f in __free_tcb () from /lib/x86_64-linux-gnu/libpthread.so.0

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.

最佳答案

修改pthread_create(&m_threads[i]pthread_create(&m_threads[t_num]解决了这个问题。

关于c++ - pthread_join 期间的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60071431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com