- 论坛徽章:
- 0
|
回复 7# soforigoout
ret = pthread_create(&tid, NULL, thread_handler, &a);
改成这样就可以了吧。
pthread_t tid[5]不需要全局变量吧,我在hp的机器上测试,通过了。- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <pthread.h>
- #include <string.h>
- void *thread_handler(void *arg)
- {
- int value = *((int *)(arg));
- printf("value=%d\n", value);
- return NULL;
- }
- int main(void)
- {
- pthread_t tid[5];
- int a[5];
- int i, ret;
- for(i = 0;i < 5; i++)
- {
- a[i] = i;
- ret = pthread_create(&tid[i], NULL, thread_handler, &a[i]);
- if (ret)
- {
- printf("%s\n", strerror(ret));
- exit(1);
- }
- }
- for ( i = 0; i < 5; i++)
- {
- pthread_join(tid[i], NULL);
- }
- pthread_exit(NULL);
- }
复制代码 |
|