
Windows学习
青之羽
一名正在入门的程序员
展开
-
Windows生产者与消费者 8
在生产者与消费者实现当中,通过设定事件g_hSet和事件g_hClear两个事件对象来用于确立生产者线程对象和消费者线程对象之间的异步有序执行操作。当set事件对象处于激活状态的时候,生产者线程对象开始进行执行,生产者对象向共享容器当中投放产品,之后激活Clear事件对象,另消费者对象开始对容器当中的产品进行消费操作。消费者对象进行消费完毕之后,重新激活Set事件对象来另生产者对象重新进行产品的生产操做。 #include<stdio.h> #include<Windows.h>原创 2021-08-30 10:13:20 · 318 阅读 · 0 评论 -
windows学习互斥体 7
互斥体与临界资源锁类似,临界资区是为了实现同一个进程对象当中的不同线程对象异步的对临界资源进行访问。但是如果有多个不同进程对象需要异步的实现对操作系统内核当中的某一个临界资源对象进行访问的时候,此时就不能使用临界资源锁Critical Section。因为临界资源锁只能够实现对进程私用的资源进行加锁操作,来实现不同线程之间的异步资源访问。但是不同的线程对象之间所要共同访问的公共资源是存放在操作系统内核当中,该资源并不是某一个线程所独有的,所以是不能够通过临界区的设置来实现不同进程之间的异步访问。所以此时就引原创 2021-08-21 21:35:27 · 401 阅读 · 0 评论 -
windows临界资源学习 6
以售票系统为例子,创建两个售票进程对象,进行并发的售票操作。在进行售票的时候首先要通过Critical Section对象来创建一个资源锁对应用于实现不同线程对象之间对临界资源的互斥访问。 #include<stdio.h> #include<Windows.h> int g_dwTickets = 10; CRITICAL_SECTION cs;//创建临界区资源用于实现对临界区资源代码段的互斥访问 //卖票进程对象 DWORD WINAPI MyFirstTh...原创 2021-08-21 20:26:29 · 144 阅读 · 0 评论 -
windows线程学习 5
创建两个线程对象,然后另其交替进行执行 #include<stdio.h> #include<Windows.h> /// <summary> ///当线程对象启动之后将会调用该函数进行执行 /// </summary> /// <param name="lpParameter">LPVOID是一个没有类型的指针,也就是说你可以将LPVOID类型的变量赋值给任意类型的指针</param> /// <returns><原创 2021-08-20 17:03:40 · 123 阅读 · 0 评论 -
windows编程创建进程 4
#include<Windows.h> #include<stdio.h> //进行子进程对象的创建 BOOL CreateChildProcess(PTCHAR szChildProcessName, PTCHAR szComandLine) { STARTUPINFO si;//当Windows系统创建进程的时候将会调用该结构体对象 PROCESS_INFORMATION pi;//windows所创建的新进程对象当中的必要信息将存放到该结构体当中 ZeroMemory(.原创 2021-08-20 16:07:54 · 198 阅读 · 0 评论 -
windows学习进程创建过程 3
在Windows程序当中,每一个进程对象都有4G的虚拟内存。当一个可执行文件在内存中被创建进程时,设定用户空间为2G,内存分布如下: 共享的内核分区是由所有的进程对象共同享用的。 进程的创建过程:当用户双击运行一个可执行文件对象的时候,操作系统就会通过调用explorer.exe进程对象来为当前的可执行程序创建一个新的进程对象。Explorer.exe进程对象将会调用CreateProcess()函数对象来实现进程对象的创建操作。 (1)映射exe文件:当双击运行一个可执行文件时,开辟一块用户独享的.原创 2021-08-19 14:47:39 · 236 阅读 · 0 评论 -
windows编程学习窗口编辑 2
#include<Windows.h> #include<stdio.h> LRESULT CALLBACK windProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR lpCmdLine,int iCmdShow ) { static TCHAR szAppName[] = TEXT("Mywindows");//设定当前窗体对象的名.原创 2021-08-18 15:44:37 · 281 阅读 · 0 评论 -
win32学习1
如上图所示在VS当中进行windows编程项目的创建 进行C文件的创建 #include<Windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow ){ MessageBox(NULL, TEXT("进行WinWindows编程"), TEXT("清之羽"), MB_OK); return 0; .原创 2021-08-14 21:02:03 · 112 阅读 · 0 评论