簡體   English   中英

PThread-盡管調用pthread_join,線程仍提前退出

[英]PThread - Thread Exiting early despite calling pthread_join

我已經以相當基本的方式實現了PThreads:

#include<iostream>
#include<pthread.h>
#include<stdio.h>

using namespace std;

class ThreadParameter
{
public:
char symbol_char;
int count;
};

void* print_char (void* param)
{

ThreadParameter* p = (ThreadParameter*)param;

for (int i=0; i< p->count; i++)
{
cout<< p->symbol_char <<endl;
i++;
}
return NULL;
}

int main ()
{
pthread_t thread1_id;

ThreadParameter param1;

param1.symbol_char = 'X';
param1.count = 27;

pthread_create (&thread1_id, NULL, &print_char, &param1);

int i = 0;

while (i<10)
{
cout<<"O"<<endl;
i++;
}

pthread_join(thread1_id,NULL);

return 0;
}

而且其輸出未顯示預期的X號。我在調用join函數時犯了什么錯誤? 感謝幫助。

產量

PS:我嘗試過從5到20的各種X值,但它總是比期望的X值小。

您在print_char() i遞增兩次。

更改

for (int i=0; i< p->count; i++)
{
    cout<< p->symbol_char <<endl;
    i++;
}

for (int i=0; i< p->count; i++)
{
    cout<< p->symbol_char <<endl;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM