📄 thread error.txt
字号:
关于linux下多线程编程,小弟遇到了点麻烦,请各位指导一下,谢谢.
这是编译时的错误信息:
[root@localhost thread]# g++ -o mutilthread main.cpp
main.cpp: In function `int main()':
main.cpp:14: error: invalid conversion from `void*' to `void*(*)(void*)'
main.cpp:14: error: initializing argument 3 of `int pthread_create(pthread_t*, const pthread_attr_t*, void*(*)(void*), void*)'
main.cpp:17: error: `exit' undeclared (first use this function)
main.cpp:17: error: (Each undeclared identifier is reported only once for each function it appears in.)
这是源代码:main.cpp
#include <stdio.h>
#include <pthread.h>
void thread(void)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread.\n");
}
int main(void)
{
pthread_t id;
int i,ret;
ret=pthread_create(&id,NULL,(void *) thread,NULL);
if(ret!=0){
printf ("Create pthread error!\n");
exit (1);
}
for(i=0;i<3;i++)
printf("This is the main process.\n");
pthread_join(id,NULL);
return (0);
}
1。编码问题
void thread(void)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread.\n");
}
改为
void* thread(void)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread.\n");
return NULL;
}
ret=pthread_create(&id,NULL,(void *) thread,NULL);
改为ret=pthread_create(&id,NULL, thread,NULL);
2。编译问题
g++ -o mutilthread main.cpp
改为
g++ -o mutilthread main.cpp -lpthread
------------
错了一个地方:pthread_create(&id,NULL,(void *) thread,NULL);
把,(void *) thread改成,(void *) &thread
一切ok
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -