b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

windows线程编程_windows7查看线程_windows多线程(4)

电脑杂谈  发布时间:2017-03-06 19:52:10  来源:网络整理

所以这两个函数要成对出现,无论你调用多少次,但是一定要配对,不然就出现前门关了再也没开过导致其他线程进不来或者前门一直大开没有任何效果。如此运行一下你会发现一切变得如你所料的显示了,因为在这里我们把主要之前的竞争资源hout做了管理。 【更多】本来感觉这一节感觉我应该深入的说明一下CRITICAL_SECTION以及各种相关函数的原理,但是我觉得我怎么写也不可能比这一篇更通俗易懂了: ,所以我决定我稍微扯一下windows的进程。首先要明确的一点是进程并不会执行任何代码,操作系统调度和执行的最小单位是线程,而进程都至少有一个线程。那么进程到底有什么用呢?进程给线程的执行提供了环境,他是线程执行的容器,可以保证线程一直在每个进程空间中执行。如果两个线程在同一个进程中执行,那么这两个线程可以共享进程的地址空间,他们可以共享进程里面的代码和数据。所以你可以看到在我们的例子里面,主线程和子线程可以共同拥有hout,还可以共同获得home planet和planet1结构体里面的信息。打个比方,进程就像一个房子,线程就像住进房子里面的人,世界的运行并不是由房子发动的,而是由房子中的人来进行的,但是房子提供了人活动的边界和各种房间以及功能性的资源,在同一个房子中所有人原则上都能运用里面所有的房间和东西但是用不了别人房子的内容。

就算互相交流也是以人与人为单位互相交流甚至和邻居交流,房子是不能互相交流的。 四、另一种形式的美好。 CRITICAL_SECTION提供了一种非常方便的同步方法并且是在user mode下的而不是kernel mode下实现的,几个相关函数也表达出了特别通俗易懂的解决方式。解决一个问题的方法往往不止一个,我一直都感觉如果把两个相似的东西放在一起对比一下最能体会到二者的不同与奥秘,所以在这一个部分,还是第三部分同样的问题,换一种方式一样能解决这个问题。 我想要在这里介绍的叫做mutex,mutex是Mutual Exclude的缩写,Mutual是彼此的意思,所以这个东西直白的翻译就是彼此的排斥,常见的中文翻译名称叫做互斥体。这个名称就很好理解了,其作用基本和CRITICAL_SECTION基本很像,也是在某一时间内,只有一个单位能够拥有资源(这里用单位没有用线程,因为Mutex是可以跨进程使用的)。如果想使用mutex,首先你的创建一个,ghMutex是一个global的handle对象: ghMutex = CreateMutex(NULL,FALSE,NULL); CreateMutex有三个参数,第一个是和createthread第一个参数的含义相同,第二个参数是表示创建者是否是这个mutex的初始拥有者,最后一个参数是你可以给这个mutex对象起一个名字,这样在以后的调用中,你可以使用这个名字唯一的找到这个mutex对象,于是在其他进程中你一样能得到这个mutex对象的句柄。

说到获得一个已创建的mutex句柄,你还可以使用OpenMutex函数,这个函数提供获取一个命名mutex的功能并且能指定对这个mutex的权限。对于这部分内容我会在后面稍微扯扯我所知道的。当你有一个mutex对象了之后,想做到同步与控制,你还需要一个重要的函数,WaitForSingleObject,这个函数用来等待一个内核对象的状态变成被激活或者说获取一个激活状态的内核对象,其作用在多线程编程中差不多相当于封装对于C++的地位差不多。那么在介绍怎么用这个函数之前,先来解释一下什么叫激活状态。简单的来说,当你创建一个内核对象的时候,比如Mutex,那么在内核中它就拥有一个初始状态,在我们这个例子中,这是被激活的一种状态,也就是差不多等于我没有被任何人使用,现在十分的空闲。windows线程编程这时候调用WaitForSingleObject,那么一等就等到了,因为这个时候Mutex没事干,此时,内核会将这个mutex变成非激活状态。然后如果有其他线程再等待这个内核对象,那么这个忙碌的,非激活的Mutex就不能被等待,这个线程只能先登在关键资源的外面直至Mutex变成激活状态之后它才能拥有它。那么既然WaitForSingleObject之后Mutex会变成非激活状态,怎么让它重新变成激活状态呢?你只需要调用ReleaseMutex。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-36136-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...