题目
来做题了
问题描述
有4个线程和1个公共的字符数组。线程1的功能就是向数组输出A,线程2的功能就是向字符输出B,线程3的功能就是向数组输出C,线程4的功能就是向数组输出D。要求按顺序向数组赋值ABCDABCDABCD,ABCD的个数由线程函数1的参数指定。[注:C语言选手可使用WINDOWS SDK库函数]
接口说明:
void init(); //初始化函数
void Release(); //资源释放函数
unsignedint__stdcall ThreadFun1(PVOID pM) ; //线程函数1,传入一个int类型的指针,用于初始化输出A次数,资源需要线程释放
unsignedint__stdcall ThreadFun2(PVOID pM) ;//线程函数2,无参数传入
unsignedint__stdcall ThreadFun3(PVOID pM) ;//线程函数3,无参数传入
Unsigned int __stdcall ThreadFunc4(PVOID pM);//线程函数4,无参数传入
char g_write[1032]; //线程1,2,3,4按顺序向该数组赋值。
输入
10
输出
ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD
思路
具体的函数说明可以在这个博客中找到 windows.h
利用信号量,把多线程当成单线程来用。。。。
顺便说一下markdown的图片调整大小
<img src="URL" width="200" height="200" />
代码
这里给出网上一个大神写的代码分享一下
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <windows.h>
using namespace std;
HANDLE hThread1=NULL;
HANDLE hThread2=NULL;
HANDLE hThread3=NULL;
HANDLE hThread4=NULL;
HANDLE hMutex=NULL;