线程与进程
文章平均质量分 89
霸道小明
种一棵树最好的时间是十年前,其次是现在。如果你十年前没有种,那就现在种。
展开
-
深入理解内核对象与函数句柄
Windows进程中除了内核对象还有其他类型的对象,比如窗口,菜单,字体等,这些属于用户对象和GDI对象。要区分内核对象与非内核对象,最简单的方式就是查看创建这个对象的函数,几乎所有创建内核对象的函数都有一个允许我们指定。内核对象A,B的引用计数减为0,被操作系统内核销毁,而进程1只减少自身对C,D的引用计数,不会影响进程2对C,D的引用计数,此时C,D引用计数不为0,不会被销毁。初次创建内核对象,使用计数为1。也就是说内核对象在当前进程中创建,但是当前进程退出时,内核对象有可能被另外一个进程访问。原创 2022-11-10 20:55:49 · 250 阅读 · 0 评论 -
线程同步的四种实现方式
这两种事件对象的区别在于当人工重置的事件对象得到通知时,等待该事件对象的所有线程均变为可调度线程;而当一个自动重置的事件对象得到通知时,等待该事件对象的线程中只有一个线程变为可调度线程。因为我们使用了事件对象。函数,以获得指定的临界区对象的所有权,该函数等待指定的临界区对象的所有权,如果该所有权赋予了调用线程,则该函数就返回;之后,其他想要获得该临界区对象所有权的线程就可以获得该所有权,从而进入关键代码段,访问保护的资源。函数释放该对象,该函数将释放一个没有被任何线程所拥有的临界区对象的所有资源。原创 2022-11-10 20:50:32 · 1437 阅读 · 0 评论 -
线程同步之信号量
信号量的组成信号量()是操作系统用来解决并发中的互斥和同步问题的一种方法。与互斥量不同的地方是,它允许多个线程在,但是需要限制在同一时刻访问此资源的最大线程数目。信号量的工作原理以一个停车场为例,假设停车场只有三个车位,那么同一时刻最多只能有三辆车进入,还有其他车来时则必须在入口等待。只有当有一辆车离开停车场,才能允许其他车辆进入,如此往复。这个停车系统中,每辆车就好比一个线程,空车位数量就好比一个信号量,空车位数量限制了可以活动的线程。原创 2022-11-10 20:51:46 · 891 阅读 · 0 评论 -
(C++)线程同步——互斥对象
临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源。属于临界资源的硬件有,打印机,磁带机等;软件有消息队列,变量,数组,缓冲区等。诸进程间采取互斥方式,实现对这种资源的共享。原创 2022-09-13 09:08:38 · 896 阅读 · 0 评论