第2章 进程管理new.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 进程管理new

4 struct pcb { /* 定义进程控制块PCB */  int flag;  int numlabel;  char product;  char state;  struct pcb* processlink; }*exe=NULL,*over=NULL;  typedef struct pcb PCB; PCB* readyhead=NULL,* readytail=NULL; PCB* consumerhead=NULL,* consumertail=NULL; PCB* producerhead=NULL,* producertail=NULL; 进程创建函数 BOOL CreateProcess( LPCTSTR lpApplicationName, //指向包含了要运行模块名字的字符串。 LPTSTR lpCommandLine,//指向命令行字符串。 LPSECURITY_ATTRIBUTES lpProcessAttributes, //进程安全属性 LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全属性 BOOL bInheritHandles, //新进程是否从父进程继承句柄 DWORD dwCreationFlags, //控制优先类和进程创建的附加标志 LPVOID lpEnvironment, //指向一个新进程的环境块。 LPCTSTR lpCurrentDirectory, //指向表示当前目录的字符串 LPSTARTUPINFO lpStartupInfo, //控制进程的主窗口的出现方式 LPPROCESS_INFORMATION lpProcessInformation //该结构接受关于新进程的表示信息。 ); ExitProcess()函数可以立即终止本进程的运行。用于需要在程序中通过代码来强制结束本进程的运行。 ExitProcess()函数原型为: void ExitProcess(UINT uExitCode); 其参数uExitCode为进程设置了退出代码。该函数具有强制性,在执行完毕后进程即已经被结束,因此位于其后的任何代码将不能被执行。 如果要在一个进程中强制结束其他的进程就要用TerminateProcess()来实现。执行后,被终止的进程是不会得到任何关于程序退出的通知的。也就是说,被终止的进程是无法在结束运行前进行退出前的收尾工作的。 TerminateProcess()的函数原型: BOOL TerminateProcess(HANDLE hProcess, UINT uExitCode); 参数hProcess和uExitCode分别为进程句柄和退出代码。如果被结束的是本进程,可以通过GetCurrentProcess()获取到句柄。 #include iostream.h #include process.h #include windows.h HANDLE hMutex; DWORD WINAPI MyThread(LPVOID lpParameter) { char ctl; WaitForSingleObject(hMutex,INFINITE); coutGet Mutexendl; coutPlease input the control character:; while(1) { cinctl; if(ctl==q||ctl==Q) { coutFINISHEDendl; break; } else coutPlease input again!endl; } ReleaseMutex(hMutex); coutRelease Mutexendl; coutCome to your turn.endl; return 1; } #include windows.h #include process.h #include iostream.h HANDLE hSemaphore; DWORD WINAPI MyThread(LPVOID lpParameter) { int *pNo=(int*)lpParameter; WaitForSingleObject(hSemaphore,INFINITE); cout***Thread #*pNo Get the Semaphoreendl; Sleep(1000*(*pNo)); cout***Thread #*pNo Release the Sem

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档