windows - Windows信号量对象的大小是多少?

标签 windows semaphore

如何在 Windows 中查找信号量对象的大小?

我尝试使用 sizeof() 但我们不能将信号量对象的名称作为 sizeof 的参数。它必须是 handle 。 sizeof(HANDLE) 为我们提供了句柄的大小,而不是信号量。

最佳答案

这就是所谓的“不透明句柄”。没有办法知道它到底有多大,它包含什么或者任何功能在内部是如何工作的。这使 Microsoft 能够在不担心破坏现有代码的情况下,完全重写每个新版本 Windows 的实现。这与具有类的公共(public)和私有(private)接口(interface)的概念类似。由于我们不在 Windows 内核上工作,所以我们只能看到公共(public)接口(interface)。

更新:

通过创建一堆并监控您在 Process Explorer 中的内存使用情况,可能可以大致了解它们有多大。 .但是,由于它们很有可能存在于内核中而不是用户空间中,因此它可能根本不会出现。在任何情况下,我们都不保证任何其他版本的 Windows,过去或将来,包括补丁/服务包。

关于windows - Windows信号量对象的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789652/

相关文章:

unix - 信号量的简单测试

c++ - 提高生产者消费者的并发性

c - "The usage of semaphores is subtly wrong"

c# - 无法加载可执行文件

c++ - 我应该为 C++ GUI 安装 Qt 5.5.1 什么?

java - Windows net.exe 使用驱动程序消息在 Java 上包含无效字符

python - ipython:暂时转到 shell,稍后返回当前 ipython session

Java无限计数信号量?

linux - 是否必须从系统调用中调用 down(semaphore) 和 down_interruptible(semaphore)?

windows - 检查特定过程在delphi中是否升高