Windows进程管理实验
1.线程的创建与撤销
#include <windows.h> #include <stdio.h> void func(); static HANDLE h1 = NULL; static HANDLE hHandle1 = NULL; int main(INT argc, TCHAR* argv[]) { int nRetCode = 0; DWORD dwThreadID1; DWORD dRes, err; //创建一个信号量 hHandle1 = CreateSemaphore(NULL, 0, 1, "SemaphoreName1"); if (hHandle1 == NULL) puts("Semaphore Create Fail!"); else puts("Semaphore Create Success!"); //打开信号量 hHandle1 = OpenSemaphore(SYNCHRONIZE | SEMAPHORE_MODIFY_STATE, NULL, "SemaphoreName1"); if (hHandle1 == NULL) puts("Semaphore Open Fail!"); else puts("Semaphore Open Success!"); //创建子线程 h1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, NULL, 0, &dwThreadID1); if (h1 == NULL) puts("Thread1 create Fail!"); else puts("Thread1 create Success!"); //主线程等待子线程结束 dRes = WaitForSingleObject(hHandle1, INFINITE); err = GetLastError(); printf("WaitForSingleObject err = %d\n", err); if(dRes == WAIT_TIMEOUT) printf("TIMEOUT!dRes = %d\n", dRes); else if(dRes == WAIT_OBJECT_0) printf("WAIT_OBJECT!dRes = %d\n", dRes); else if(dRes == WAIT_ABANDONED) printf("WAIT_ABANDONED!dRes = %d\n", dRes); else printf("dRes = %d\n", dRes); CloseHandle(h1); CloseHandle(hHandle1); ExitThread(0); return nRetCode; } void func() //线程函数 { BOOL rc; DWORD err; puts(" NOW IN THREAD!"); //子线程焕醒主线程,此时同步执行 rc = ReleaseSemaphore(hHandle1, 1, NULL); err = GetLastError(); printf("ReleaseSemaphore err = %d\n", err); if (rc == 0) puts("ReleaseSemaphore Fail!"); else printf("ReleaseSemaphore Success! rc = %d\n", rc); }
2.线程的同步
#include <windows.h> #include <stdio.h> void ThreadName1(); static HANDLE hHandle1 = NULL; DWORD dwThreadID1; int main(INT argc, TCHAR* argv[]) { int nRetCode = 0; //创建一个线程 hHandle1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadName1, NULL, 0, &dwThreadID1); //挂起5秒 Sleep(5000); CloseHandle(hHandle1); //撤消线程 ExitThread(0); return nRetCode; } void ThreadName1() //线程函数 { printf("Thread is Running!\n"); }
3.线程的互斥
#include <windows.h> #include <stdio.h> static INT count = 5; static HANDLE h1, h2; LPCRITICAL_SECTION hCriticalSection; CRITICAL_SECTION Critical; void func1(); void func2(); int main(INT argc, TCHAR* argv[]) { int nRetCode = 0; DWORD dwThreadID1, dwThreadID2; //指向临界区 hCriticalSection = &Critical; InitializeCriticalSection(hCriticalSection); //创建线程1 h1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func1, NULL, 0, &dwThreadID1); if (h1 == NULL) puts("Thread1 create Fail!"); else puts("Thread1 create Success!"); //创建线程 h2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func2, NULL, 0, &dwThreadID1); if (h2 == NULL) puts("Thread2 create Fail!"); else puts("Thread2 create Success!"); Sleep(1000); //回收处理 CloseHandle(h1); CloseHandle(h2); DeleteCriticalSection(hCriticalSection); ExitThread(0); return nRetCode; } void func1() //线程函数1 { int r1; //进入临界区 EnterCriticalSection(hCriticalSection); r1 = count; Sleep(500); ++r1; count = r1; printf("count in func1 = %d\n", count); //退出临界区 LeaveCriticalSection(hCriticalSection); } void func2() //线程函数2 { int r2; EnterCriticalSection(hCriticalSection); r2 = count; Sleep(500); ++r2; count = r2; printf("count in func2 = %d\n", count); LeaveCriticalSection(hCriticalSection); }
4.使用命名管道实现进程通信
服务端
//Server.c #include <windows.h> int main(void) { INT nRetCode = 0; INT err; BOOL rc; HANDLE hPipeHandle1; CHAR lpName[] = "\\\\.\\pipe\\myPipe"; CHAR InBuffer[50] = ""; CHAR OutBuffer[50] = ""; DWORD BytesRead, BytesWrite; //创建一个命名管道 hPipeHandle1 = CreateNamedPipe((LPCTSTR)lpName, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED | WRITE_DAC , PIPE_TYPE_MESSAGE | PIPE_READMODE_BYTE | PIPE_WAIT, 1, 20, 30, NMPWAIT_USE_DEFAULT_WAIT, NULL); if((hPipeHandle1 == INVALID_HANDLE_VALUE) || (hPipeHandle1 == NULL)) { err = GetLastError(); printf("Server Pipe Create Fail! err = %d\n", err); exit(1); } else puts("Server Pipe Create Success!"); while(TRUE) { //连接命名管道 rc = ConnectNamedPipe(hPipeHandle1, NULL); if (rc == 0) { err = GetLastError(); printf("Server Pipe Connect Fail! err = %d\n", err); exit(2); } else puts("Server Pipe Connect Success!"); strcpy(InBuffer, ""); strcpy(OutBuffer, ""); //向命名管道中读数据 rc = ReadFile(hPipeHandle1, InBuffer, sizeof(InBuffer), &BytesRead, NULL); if (rc == 0 && BytesRead == 0) { err = GetLastError(); printf("Server Read Pipe Fail! err = %d\n", err); exit(2); } else printf("Server Read Pipe Success!\nDATA from Client is = %s\n", InBuffer); rc = strcmp(InBuffer, "end"); if (rc == 0) break; puts("Please Input Data to Send"); scanf("%s", OutBuffer); //向命名管道中写数据 rc = WriteFile(hPipeHandle1, OutBuffer, sizeof(OutBuffer), &BytesWrite, NULL); if (rc == 0) puts("Server Write Pipe Fail!"); else puts("Server Write Pipe Success!"); //拆除与命名管道的连接 DisconnectNamedPipe(hPipeHandle1); rc = strcmp(OutBuffer, "end"); if (rc == 0) break; } puts("Now Server be END!"); CloseHandle(hPipeHandle1); return nRetCode; }
客户端
//Clinet.c #include <windows.h> int main(void) { INT nRetCode = 0; INT err = 0; BOOL rc = 0; CHAR lpName[] = "\\\\.\\pipe\\myPipe"; CHAR InBuffer[50] = ""; CHAR OutBuffer[50] = ""; DWORD BytesRead; while(TRUE) { strcpy(InBuffer, ""); strcpy(OutBuffer, ""); puts("Input Data Please!"); scanf("%s", InBuffer); rc = strcmp(InBuffer, "end"); if (rc == 0) { //连接命名管道 rc = CallNamedPipe(lpName, InBuffer, sizeof(InBuffer), OutBuffer, sizeof(OutBuffer), &BytesRead, NMPWAIT_USE_DEFAULT_WAIT); break; } //等待命名管道 rc = WaitNamedPipe(lpName, NMPWAIT_WAIT_FOREVER); if (rc == 0) { err = GetLastError(); printf("Wait Pipe Fail! err = %d\n", err); exit(1); } else puts("Wait Pipe Success!"); rc = CallNamedPipe(lpName, InBuffer, sizeof(InBuffer), OutBuffer, sizeof(OutBuffer), &BytesRead, NMPWAIT_USE_DEFAULT_WAIT); rc = strcmp(OutBuffer, "end"); if (rc == 0) break; if (rc == 0) { err = GetLastError(); printf("Pipe Call Fail! err = %d\n", err); exit(1); } else printf("Pipe Call Success!\nData from Server is %s\n", OutBuffer); } puts("Now Client to be End!"); return nRetCode; }
2019年2月19日 13:34
The star value of the programmer is intensified for the terms for the people. The function is ensured to write a will australia for the future progress. The term is calculated for the overall good items for the humans in the field.
2019年6月01日 17:59
The web site is lovingly serviced and saved as much as date. So it should be, thanks for sharing this with us
2020年3月20日 14:34
I really enjoy locating a website that offers you great news since I like being familiar with new things. Many times when I have been to this site I've loved the nice content on this site. An awesome website and i'll be back once more for further useful content… meet me conference calling
2020年4月02日 01:00
Initial You got a awesome blog .I determination be involved in plus uniform minutes. i view you got truly very functional matters , i determination be always checking your blog blesss. 메이저사이트
2020年4月02日 01:12
wow this saintly however ,I love your enter plus nice pics might be part personss negative love being defrent mind total poeple ,사설토토
2020年4月03日 21:02
Very interesting information, worth recommending. However, I recommend this: 온라인카지노
2020年7月06日 03:00
For many people this is the best solution here see how to do it. garage door repair centereach
2020年7月11日 19:47
For true fans of this thread I will address is a free online!Dub
2020年7月18日 02:10
I would recommend my profile is important to me, I invite you to discuss this topic. smm panel
2020年8月16日 03:46
You should mainly superior together with well-performing material, which means that see it:
2020年10月05日 16:17
Thanks for writing such a good article, I stumbled onto your blog and read a few post. I like your style of writing... teen depression treatment center
2020年10月15日 02:55
Below you will understand what is important, the idea provides one of the links with an exciting site:
2020年11月16日 02:02
Here we have provided all educational board class 10th & 12th Standard Model Paper 2021 with Practice Question Paper for both medium student of the country in board wide, hope you download and practice the question bank to get a better score in all exams.
2020年11月17日 02:02
The new operating system will turn out to be the most reliable of all that Microsoft has ever released, and it will also receive native support for Android smartphones, having received full synchronization with such. According to currently available data, the presentation of Windows 12 will take place in end of 2020
2020年11月17日 03:16
Initial You got a awesome blog .I determination be involved in plus uniform minutes. i view you got truly very functional matters , i determination be always checking your blog blesss.
2020年11月18日 19:04
In this article understand the most important thing, the item will give you a keyword rich link a great useful website page:
2020年11月20日 17:01
These you will then see the most important thing, the application provides you a website a powerful important internet page:
2020年11月21日 18:08
In this article understand the most important thing, the item will give you a keyword rich link a great useful website page:
2020年11月22日 17:25
These AISSEE 2020 question papers help students to understand the pattern and difficulty level of the exam. In addition to this, each AISSEE question paper 2020 is available in three sets AISSEE Model Paper 2021. Students can download the Sainik School question paper 2021 for class 9 and 6 using the links provided below.
2020年12月18日 17:01
This is important, though it's necessary to help you head over to it weblink:
2021年1月01日 00:55
These things are very important, good think so - I think so too...
2021年1月06日 17:03
This is very appealing, however , it is very important that will mouse click on the connection:
2021年1月08日 18:17
I've proper selected to build a blog, which I hold been deficient to do for a during. Acknowledges for this inform, it's really serviceable!
2021年1月11日 00:30
Thanks for writing such a good article, I stumbled onto your blog and read a few post. I like your style of writing...
2021年1月16日 19:25
Thanks for writing such a good article, I stumbled onto your blog and read a few post. I like your style of writing...
2021年1月17日 19:27
Beaver says I also have such interest, you can read my profile here:
2021年1月17日 19:50
It is especially decent, though look into the tips during this home address.
2021年1月19日 13:12
I can recommend primarily decent and even responsible tips, as a result view it:
2021年1月20日 20:31
It is especially decent, though look into the tips during this home address.
2021年1月20日 22:21
I've proper selected to build a blog, which I hold been deficient to do for a during. Acknowledges for this inform, it's really serviceable!
2021年1月21日 15:52
This is very appealing, however , it is very important that will mouse click on the connection:
2021年1月24日 23:32
1st, deciding the strain you need is perhaps the most predominant types of Magic Mushrooms is Psilocybe Cubensis and you can locate a wide scope of various strains becoming both in the wild and inside everywhere on the world. Right now, there are more than 60 diverse Psilocybe Cubensis strains that we are aware of. Subsequently, not all Psilocybe Cubensis strains are practically a mirror image of one another. The strength and stumbling levels are distinctive in every one of these strains. On the off chance that you are searching for cheerful sentiments and bunches of chuckles, you may pick in for Magic Mushrooms, while B+ Magic Mushrooms will give you one of the hottest visual and otherworldly excursions. In the same way as other others, you might be looking for the mending advantages of psilocybin mushrooms or truffles. Before you begin investigating this segment, if it's not too much trouble note that psilocybin is an unlawful and exceptionally controlled substance in many pieces of this world. We just energize protected, capable, utilization of psilocybin mushrooms.
2021年2月03日 16:54
Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have.
2021年2月23日 03:06
It is especially decent, though look into the tips during this home address.
2021年2月24日 02:26
Interestingly you write, I will address you'll find exciting and interesting things on similar topics.
2021年2月28日 16:37
I am interested in such topics so I will address page where it is cool described.
2021年3月08日 22:57
These things are very important, good think so - I think so too...
2021年3月12日 17:47
I also wrote an article on a similar subject will find it at write what you think.
2021年3月19日 20:24
It is somewhat fantastic, and yet check out the advice at this treat.
2021年3月22日 20:28
It is rather very good, nevertheless glance at the data with this handle.
2021年3月23日 13:46
Acknowledges for penmanship such a worthy column, I stumbled beside your blog besides predict a handful advise. I want your tone of manuscript...
2021年3月26日 02:22
Within this webpage, you'll see the page, you need to understand this data.
2021年4月03日 04:39
"Asian upbringings make our escorts the special girls with special abilities
Our Asian escorts New York have been all brought up in Asian countries. Hence, they have all the natural charm, adorable glow all over their face and body, and the
vibes that seduce the men of American origins. Their capabilities to help you in achieving sensual climaxes through special ways makes them something that you
never nd in general."
2021年4月03日 23:14
On my website you'll see similar texts, write what you think.
2021年4月07日 04:10
I exploit solely premium quality products -- you will observe these individuals on:
2021年4月14日 08:26
You ought to basically fantastic not to mention solid advice, which means notice:
2021年4月15日 03:18
Mmm.. estimable to be here in your report or notify, whatever, I repute I should moreover process strong for my have website want I play some salubrious further updated busy in your location.
2021年4月15日 03:51
Welcome to the party of my life here you will learn everything about me.
2021年4月18日 19:40
You possess lifted an essential offspring..Blesss for using..I would want to study better latest transactions from this blog..preserve posting..
2021年4月27日 23:00
Your texts on this subject are correct, see how I wrote this site is really very good.
2021年5月02日 03:27
Cool you inscribe, the info is really salubrious further fascinating, I'll give you a connect to my scene.
2021年5月06日 00:29
Welcome to the party of my life here you will learn everything about me.
2021年5月08日 02:39
Gives you the best website address I know there alone you'll find how easy it is.
2021年5月09日 22:58
Welcome to the party of my life here you will learn everything about me.
2021年5月12日 01:26
Beaver says I also have such interest, you can read my profile here:
2021年5月12日 03:12
Gives you the best website address I know there alone you'll find how easy it is.
2021年5月12日 03:34
You possess lifted an essential offspring..Blesss for using..I would want to study better latest transactions from this blog..preserve posting..
2021年5月12日 22:54
I wrote about a similar issue, I give you the link to my site.
2021年5月13日 16:06
On this page, you'll see my profile, please read this information.
2021年5月14日 18:08
Within this webpage, you'll see the page, you need to understand this data.
2021年5月19日 01:32
Welcome to the party of my life here you will learn everything about me.
2021年5月21日 03:54
On this page, you'll see my profile, please read this information.
2021年5月21日 04:18
You possess lifted an essential offspring..Blesss for using..I would want to study better latest transactions from this blog..preserve posting..
2021年5月21日 15:34
You possess lifted an essential offspring..Blesss for using..I would want to study better latest transactions from this blog..preserve posting..
2021年5月21日 18:26
On this page you can read my interests, write something special.
2021年5月29日 13:00
You possess lifted an essential offspring..Blesss for using..I would want to study better latest transactions from this blog..preserve posting..
2021年5月31日 19:52
On this page you can read my interests, write something special.
2021年6月01日 00:47
During this website, you will see this shape, i highly recommend you learn this review.
2021年6月01日 02:20
Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have.
2021年6月03日 19:17
On this page you can read my interests, write something special.
2021年6月04日 01:51
At this point you'll find out what is important, it all gives a url to the appealing page:
2021年6月04日 03:15
Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have.
2021年6月04日 19:08
Welcome to the party of my life here you will learn everything about me.
2021年6月11日 02:44
You ought to basically fantastic not to mention solid advice, which means notice:
2021年6月13日 13:16
Welcome to the party of my life here you will learn everything about me.
2021年6月14日 19:52
You possess lifted an essential offspring..Blesss for using..I would want to study better latest transactions from this blog..preserve posting..
2021年6月15日 18:29
I came onto your blog while focusing just slightly submits. Nice strategy for next, I will be bookmarking at once seize your complete rises...
2021年6月17日 00:04
Welcome to the party of my life here you will learn everything about me.
2021年6月17日 02:09
Below you will understand what is important, the idea provides one of the links with an exciting site:
2021年6月27日 15:42
There you can download for free, see the first of these data.
2021年7月20日 16:01
I read this article. I think You put a lot of effort to create this article. I appreciate your work.
2021年7月23日 19:55
Interestingly you write, I will address you'll find exciting and interesting things on similar topics.
2021年7月27日 18:54
I would recommend my profile is important to me, I invite you to discuss this topic.
2021年7月30日 02:55
I've proper selected to build a blog, which I hold been deficient to do for a during. Acknowledges for this inform, it's really serviceable!
2022年8月03日 17:23
The idea brought to track the funds released through various central government schemes. This acknowledge proper expenditure at every level of scheme implementation. Public Financial Management System is an online software develop by the Controller General of Accounts, Department of Expenditure, Ministry of Finance, Government of India. Public Financial Management System The idea brought to track the funds released through various central government schemes. This acknowledge proper expenditure at every level of scheme implementation.
2022年8月03日 17:24
The idea brought to track the funds released through various central government schemes. This acknowledge proper expenditure at every level of scheme implementation. Public Financial Management System is an online software develop by the Controller General of Accounts, Department of Expenditure, Ministry of Finance, Government of India. Public Financial Management System The idea brought to track the funds released through various central government schemes. This acknowledge proper expenditure at every level of scheme implementation.
2022年9月29日 20:02
Candidates who to know the examination pattern or question paper style and want topic wise important questions for all subjects, NCERT Term 1 Question Paper Class 10 with those candidates in mind here we supplied the NCERT Term-1 Sample Paper 2023 Class 10 for Session exams of SA, FA and Assignments of all subjects and languages as per the newly revised syllabus & curriculum. Candidates who to know the examination pattern or question paper style and want topic wise important questions for all subjects.Candidates who to know the examination pattern or question paper style and want topic wise important questions for all subjects.