c语言子函数中实现多线程 windows下c语言多线程函数

C语言如何实现多线程同时运行

1、点击菜单栏的“Project”选项卡,下拉列表的最后一项“Project options...”是对当前工程的的属性进行设置的。

苏州网站建设公司创新互联公司,苏州网站设计制作,有大型网站制作公司丰富经验。已为苏州数千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的苏州做网站的公司定做!

2、选择弹出对话框中的“Compiler”选项卡。

3、将其中的“Runtime Library”的选择改为“Multithreaded (LIB)”。

4、将看到对话框最下面的文本框中发生了一些变化,新增了“-MT”选项,这与编译器一开始所报的错误提示给出的解决方案一致。

5、页面的设置完成后,再对该源码进行编译时,就能愉快地看到编译完全成功。

c语言实现多线程

目录:

Linux操作系统,C语言实现多线程

Windows操作系统,C语言实现多线程

Windows下的多线程(不带停止)

Linux操作系统,C语言实现多线程:

#include stdio.h

#include stdlib.h

#include pthread.h

void * ThreadOne ( void * threadArg )

{

printf ( "线程开始啦,参数是:%s\n" , (char *)threadArg );

return NULL;

}

int main ( void )

{

pthread_t ThreadID;   /* 记录线程标识符 */

void * waitingResult;  /* 等待线程退出的等待结果 */

int errorCode;         /* 记录线程的错误代码 */

char * aMessage = "这是线程的参数" ;

/* 创建并启动线程ThreadOne。若返回值非零,则线程创建失败 */

errorCode = pthread_create( ThreadID, NULL, ThreadOne, aMessage );

if ( errorCode != 0 )

{

printf ("线程ThreadOne创建失败。错误代码:%d\n", errorCode );

return EXIT_FAILURE ;

}

/* 等待线程标识符为的ThreadID的线程结束 */

errorCode = pthread_join( ThreadID, waitingResult );

if ( errorCode != 0 )

{

printf ( "等待线程退出等待失败。错误代码:%d\n" , errorCode ) ;

return EXIT_FAILURE ;

}

printf( "线程的返回值是%p\n", waitingResult );

return EXIT_SUCCESS ;

}

Windows操作系统,C语言实现多线程:

#include stdio.h

#include windows.h

DWORD APIENTRY ThreadOne ( LPVOID threadArg )

{

printf ( "线程开始啦,参数是:%s\n" , (char *)threadArg );

return 0;

}

int main ( void )

{

HANDLE hThread;  /* 记录线程句柄 */

DWORD ThreadID;  /* 记录线程ID号 */

DWORD waitingResult;  /* 等待线程退出的等待结果 */

DWORD threadExitCode;  /* 记录线程的返回值 */

char * aMessage = "这是线程的参数" ;

/* 创建并启动线程ThreadOne,返回值为线程句柄,赋值给hThread */

hThread = CreateThread ( NULL, 0L, ThreadOne, (LPVOID)aMessage, 0L, ThreadID );

if ( hThread == NULL )

{

printf ("线程ThreadOne创建失败。错误代码:%lu\n", GetLastError() );

return EXIT_FAILURE ;

}

/* 等待线程句柄为的hThread线程结束 */

waitingResult = WaitForSingleObject ( hThread, INFINITE );

if ( waitingResult == WAIT_FAILED )

{

printf ( "等待线程退出等待失败。错误代码:%lu\n" , GetLastError() ) ;

return EXIT_FAILURE ;

}

if ( GetExitCodeThread ( hThread , threadExitCode ) )

printf ( "线程的返回值是%lu\n", threadExitCode ) ;

else

printf ( "获取线程的返回值获取失败。错误代码:%lu\n" , GetLastError() ) ;

return EXIT_SUCCESS ;

}

Windows下的多线程:(不带停止)

#include stdio.h

#include windows.h

DWORD WINAPI duoxianchen(LPVOID lpParam);

int main(int argc, char *argv[])

{

int num=0;

CreateThread(NULL,NULL,duoxianchen,num,NULL, NULL);

while(1)

{

num++; 

printf("主线程! %05d\n",nu***eep(40);

}

return 0;

}

DWORD WINAPI duoxianchen(LPVOID lpParam)

{

int* a=lpParam;

while(1) 

{

++*a; 

printf("副线程! %05d 0x%p\n",*a,a); 

Sleep(80);

}

return 0;

}

C语言能实现多线程么

可以通过调用C语言函数库pthread里的函数,创建多线程。

多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。

C语言最初并未设计多线程的机制,随着软硬件的发展及需求的发展,C语言才开发了线程库以支持多线程的操作和应用。


当前文章:c语言子函数中实现多线程 windows下c语言多线程函数
文章地址:http://azwzsj.com/article/hjhpod.html