Windows线程CreateThread、线程处理函数、SuspendThread、ResumeThread、WaitForSingleObject、WaitForMultipleObjects

Windows线程是可以执行的代码的实例。系统是以线程为单位调度程序。一个程序当中可以有多个线程,实现多任务的处理。
windows线程的特点:
1.线程都具有一个ID
2.每个线程都具有自己的内存栈;
3.同一进程中的线程使用同一个地址空间。
线程的调度:
操作系统将CPU的执行的时间划分成时间片,依次根据时间片执行不同的线程。
线程轮询:线程A->线程B->线程A->线程B->…
创建线程
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,//安全属性,总是置零,因为已废弃
SIZE_T dwStackSize,//线程栈的大小(是以1M为单位对齐)
LPTHREAD_START_ROUTINE lpStartAddress,//线程处理函数的函数地址(程序员自己定义,由操作系统进行调用)
LPVOID lpParameter, //传递给线程处理函数的参数
DWORD dwCreationFlags,//线程的创建方式(1线程立即执行、2线程挂起<先休眠,再唤醒>)CREATE_SUSPENDED 线程挂起
LPDWORD lpThreadId //创建成功,返回线程的ID
); //创建成功,返回线程句柄
定义线程处理函数
DWORD WINAPI TreadProc(
LPVOID lpParameter //创建线程时,传递给线程的参数
);
实例如下:

#include <Windows.h>
#include <stdio.h>

DWORD CALLBACK myThreadProc(LPVOID lpParam)
{
   
	char* szText = (char*)lpParam;
	while(1)
	{
   
		Sleep(2000);
		printf("%s\n",szText);
	}
}
int main()
{
   
	char* szText = "***XXX***TTT";
	DWORD myThreadId = 0;
	HANDLE hThread = CreateThread(NULL,0,myThreadProc,szText,0,&myThreadId);
	system("pause");

	return 0;
}

线程挂起
DWORD SuspendThread(
HANDLE hThread //要挂起的线程
);
唤醒线程

DWORD ResumeThread(
	HANDLE hThread //要唤醒的线程
)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值