0

我觉得好像问题就在我的脸上。我已将问题的原因缩小到基本上一行。'pthread_create' 是问题出现的地方。下面是我的代码。

someStruct sA
pthread_t rT[10];

int i = 0;
while(i < 10) {
    if(pthread_create(&rT[i], 0, readThread(&sA), &i) != 0) {
        // Error creating child thread
        perror("Cannot create reader thread");
        exit(EXIT_FAILURE);
    }
    i++; 
}

我在这里遗漏了什么明显的东西吗?我无法发现任何对我来说似乎是原因的东西。如果我在尝试创建单个 readerThread[0] 时运行 pthread_create(),它会执行得很好。我看不到问题。

4

1 回答 1

3

您必须通过线程入口点。

readThread(&sA)是一个函数调用,会先执行代码……使用&readThread.

您必须sA作为第四个参数传递。要么不通过i,要么将这两者放在一个结构中。

实际上,您的代码根本不应该编译,或者我误解了一些东西。请提供重现问题的完整最少的代码。

于 2013-08-14T15:23:58.917 回答