C语言中 怎么实现双线程 或者 父子线程啊

C语言中 怎么实现双线程 或者 父子线程啊,第1张

通常使用CreateThread函数创建新的线程.(Unix下使用pthread_create函数)

首先指出,线程与线程之间,是并列关系,不会存在"父子线程"的概念.

在Windows平台下,CreateThread函数包含在 Windows.h 文件内,包含此文件即可正常使用.

以下为CreateThread函数的声明:

HANDLE CreateThread(

LPSECURITY_ATTRIBUTES lpThreadAttributes,//指向安全性属性描述结构体的

//指针,通常可以忽略的.

SIZE_T dwStackSize,//指定新线程初始的栈大小,若不关心,可以用0填充,来要求使用

//默认值

LPTHREAD_START_ROUTINE lpStartAddress,//用来充当线程的函数的指针.

LPVOID lpParameter,//要传递给函数的参数,这个值本身就是那个参数,而不是参数的地址

DWORD dwCreationFlags,//创建的方式,0表示正常,创建后立即开始运行

LPDWORD lpThreadId//用来接受函数反馈的线程ID的指针.

)

用来充当新的线程的函数格式:

DWORD WINAPI ThreadProc(LPVOID)

CreateThread函数若成功了,返回新线程的句柄,若失败了,则返回NULL.

若用CREATE_SUSPENDED填充dwCreation Flags则创建的线程先挂起来,并不直接开始运行,要用ResumeThread函数恢复线程,才能继续运行.

public void A()

{(new Thread(new ThreadStart(A1))).Start()}

public void B()

{(new Thread(new ThreadStart(B1))).Start()}

public void A1()

{while(true) Thread.Sleep(10)}

public void B1()

{while(true) Thread.Sleep(10)}

main()

{

(new Thread(new ThreadStart(A))).Start()

(new Thread(new ThreadStart(B))).Start()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11946786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存