⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread error.txt

📁 linux下c++编程的好文章
💻 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 + -