我需要執行以下操作: 創建一個線程,可以在一行中創建10個線程。 每個線程只打印它的ID並睡眠n秒,其中n是當前線程的序列號。 但是,我無法獲得傳遞參數的權利,當我運行我的代碼時,它似乎像線程只是在睡覺..有些幫助嗎?Pthread ID和睡眠
這裏是我的代碼:
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
# define N 10
void* printID (void *i)
{
int* p=(int*) i;
sleep(p);
pthread_exit(NULL);
}
void* th (void* unused)
{
int sec,i;
sec=1;
i=1;
while(i<=10){
pthread_t pid1;
pthread_create (&pid1, NULL, &printID, (void *)&i);
pthread_join(pid1,NULL);
printf("Thread ID je: %d \n",(int) pid1);
i=i+1;
}
}
int main(){
pthread_t pid;
pthread_create (&pid, NULL, &th, NULL);
pthread_join(pid,NULL);
return 0;
}
啓用您的編譯器的警告。 – Quentin