多线程的问题-----在SunOS下创建失败???
我想测试多线程访问共享数据的情况,源程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
static int iCount;
int main(int argc, char **argv)
{
int i;
int rp;
void *printInfo(void *arg);
pthread_t tid[5];
printf("Start...\n");
/*printf("EAGAIN:%d\n", EAGAIN);*/
for (i=0; i<5; i++){
rp = pthread_create(&tid[i], NULL, printInfo, NULL);
if (!rp)
printf("thread %d is created.\n", i+1);
else
printf("thread %d create faild! faild id %d\n", i+1, rp);
}
for (i=0; i<5; i++){
if (!pthread_join(tid[i], NULL))
printf("waiting for thread %d finished successed.\n", i);
}
exit(0);
}
void *printInfo(void *arg)
{
int j;
if (!pthread_detach(pthread_self()))
printf("thread %d detach sucessed.", pthread_self());
for (j=0; j<10; j++)
fprintf(stdout, "thread id: %d, count:%d\n", pthread_self(),iCount++);
return NULL;
}
编译运行结果:
Start...
thread 1 create faild! faild id -1
thread 2 create faild! faild id -1
thread 3 create faild! faild id -1
thread 4 create faild! faild id -1
thread 5 create faild! faild id -1
waiting for thread 0 finished successed.
waiting for thread 1 finished successed.
waiting for thread 2 finished successed.
waiting for thread 3 finished successed.
waiting for thread 4 finished successed.
那位仁兄能帮我解除疑惑,一定重谢!