- 2
- 0
- 约1.28千字
- 约 2页
- 2019-10-16 发布于江西
- 举报
实现Windows 多线程的最简编码
多线程是Windows 开发者不可回避的内容。但是对于初学者,上百行的实例代码是很不容易学习的,而且其中很多无关线程的编码也影响了我们的视线。这里我整理出来一个最简单的实现多线程的代码(这个程序将创建2个新的线程,每个线程都向控制台窗口输出一句话,如果在控制台输入数字“1”就开始线程,其它的输入就暂停线程。):
新建一个Console 工程;
修改stdafx.h 头文件,使之包含下面的内容:#include windows.h //使用多线程必须的
#include iostream //这是观看效果用的using namespace std;
然后是主文件的main 函数的改造:
首先在主文件main 函数的外部声明2个函数,给多线程调用。DWORD WINAPI MTOne(LPVOID param); DWORD WINAPI MTTwo(LPVOID param);
线程函数的实现如下:DWORD WINAPI MTOne(LPVOID param){??while(true)??{????Sleep(1000);????couthi! ;??}??//一旦返回,这个线程就结束了。??return 0;}
DWORD WINAPI MTTwo(LPVOID param){??while(true)??{????Sleep(1000);????coutjoy! ;??}??return 0;}
然后在main 函数里面创建线程和控制线程的循环:int main(int argc, char* argv[]){??int inp=0;??HANDLE hand=CreateThread (NULL, 0, MTOne, (void*)inp, CREATE_SUSPENDED, NULL);??HANDLE hand2=CreateThread (NULL, 0, MTTwo, (void*)inp, CREATE_SUSPENDED, NULL);??while(true){????cininp;????if(inp==1) //运行线程????{??????ResumeThread(hand);??????ResumeThread(hand2);????}????else //暂停线程????{??????SuspendThread(hand);?????SuspendThread(hand2);????}??};??//终止线程??TerminateThread(hand,1);??TerminateThread(hand2,1);??return 0;}
好了,已经可以编译运行了:
????已经可以看到,输入了“1”之后,线程开始执行了。由于操作系统给线程分配时间的“随机性”,两个线程输出的句子会互相“打断”。然后输入“2”,线程就暂停了。
您可能关注的文档
最近下载
- 三国杀卡牌(全套精装+限量版).pdf VIP
- 2024胖东来培训指导手册-幸福生命状态.pdf
- 广发证券-小鹏汽车-09868-小鹏汽车-W(09868)-十载磨砺成体系多维增长引擎或将驱动价值重估.pdf VIP
- 2025年湖北襄阳四中、五中自主招生考试物理试题.docx VIP
- 2025年铁路电动起重机司机一体化理论考试专业知识试题及答案.docx VIP
- 2025湖北襄阳四中、五中自主招生物理试题.docx VIP
- 捷豹XEL车型手册汽车使用说明书pdf电子版下载.pdf VIP
- 2025年新疆司法考试真题及答案.docx
- 四川省专升本计算机基础知识.docx VIP
- 部编版(26春)小学语文一年级下册教学设计全册.docx VIP
原创力文档

文档评论(0)