重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
单线程只能运行一下,当从函数返回后再继续运行下边的代码 想同时,可以用多线程 C语言本身是不支持多线程的,除非是C++或者VC++或以上的语言。 但是如果你的编程水平可以,可以自己写一个运行环境模拟多线程。 提问人的追问 2010-07-29 21:34 呃,就是这个不会呀 ==! 团队的补充 2010-07-29 21:36 呵呵,这个涉及到汇编和CPU工作分配、资源分配问题。我不是计算机专业的,也不是很明白。可以去找写系统软件的,他们都了解。
公司主营业务:网站设计、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出北海街道免费做网站回馈大家。
#include DWORD WINAPI ThreadProc(LPVOID lpParameter)//线程函数{printf("Hello World\n");return 0;}int main(){HANDLE hAnd[3] = {NULL};int i;for (i=0;i
在Win32程序中,可以使用多线程来实现,但是那个比较复杂,不太容易在短时间内掌握。
#includestdio.h
void fun1(){}
void fun2(){}
void fun3(){}
void fun4(){}
void fun5(){}
void fun6(){}
void fun7(){}
void fun8(){}
void call(char choice)
{
switch(choice)
{
case '1':
fun1();
break;
case '2':
fun2();
break;
case '3':
fun3();
break;
case '4':
fun4();
break;
case '5':
fun5();
break;
case '6':
fun6();
break;
case '7':
fun7();
break;
case '8':
fun8();
break;
defult:
break;
}
}
int main(void)
{
char choice[8]={0};
char ch;
int i=0;
printf("请输入你选择要运行的函数编号(1~8):");
ch=getchar();
while(ch!='\n')
{
if(ch='1'ch='8')
{
choice[i]=ch;
i++;
}
}
for(int j=0;ji;j++)
{
call(choice[j]);
}
return 0;
}
#include iostream// 必须的头文件#include pthread.h
using namespace std;
#define NUM_THREADS 2
// 线程的运行函数
void* say_hello(void* args){
cout "Hello Runoob!" endl; return 0;
}
int main(){
// 定义线程的 id 变量,多个变量使用数组
pthread_t tids[NUM_THREADS];
for(int i = 0; i NUM_THREADS; ++i)
{
//参数依次是:创建的线程id,线程参数,调用的函数,传入的函数参数
int ret = pthread_create(tids[i], NULL, say_hello, NULL);
if (ret != 0)
{
cout "pthread_create error: error_code=" ret endl;
}
}
//等各个线程退出后,进程才结束,否则进程强制结束了,线程可能还没反应过来;
pthread_exit(NULL);
}
g++ test.cpp -lpthread -o test.o 编译
./test.o执行
同时执行,使用线程了
C语言本身没有提供线程的功能,只能调用平台的线程来实现
如果在 WINDOWS 下面,可以参考一下 CreateThread 方法