草庐IT

pthread_mutex_lock

全部标签

windows - Mutex 是否调用系统调用?

CRITICAL_SECTIONlocking(enter)andunlocking(leave)areefficientbecauseCStestingisperformedinuserspacewithoutmakingthekernelsystemcallthatamutexmakes.Unlockingisperformedentirelyinuserspace,whereasReleaseMutexrequiresasystemcall.我刚刚在thisbook中读到这些句子.内核系统调用是什么意思?你能给我函数的名称吗?我是一个英语新手。我是这样解释它们的。CS测试不使用系

c - 如何让 pthreads 在 Windows 中工作?

我在尝试编译包含pthreads的代码时遇到了如下所述的错误warning:returntypedefaultsto'int'[-Wreturn-type]||Infunction'print_message_function':|warning:controlreachesendofnon-voidfunction[-Wreturn-type]||undefinedreferenceto`_imp__pthread_create'||undefinedreferenceto`_imp__pthread_create'||undefinedreferenceto`_imp__pthre

windows - pthreads 和 CreateThread 的死锁

我在Windows应用程序中使用pthreads。我注意到我的程序陷入了僵局——快速检查表明发生了以下情况:线程1生成了线程2。线程2生成了线程3。线程2等待来自线程3的互斥量,而线程3没有解锁。所以,我去gdb中调试,在回溯第三个线程时得到以下信息:Thread3(thread3456.0x880):#00x7c8106e9inKERNEL32!CreateThread()from/cygdrive/c/WINDOWS/system32/kernel32.dllCannotaccessmemoryataddress0x131不知何故,它在WindowsCreateThread函数中卡

windows - 是否可以通过编程方式禁用 Windows 上的 Caps Lock 键?

CapsLock键让我抓狂-我从来没有故意使用它,但有时不小心按下了它而不是TAB。我目前的解决方案是用Screwdriver卸下按钮(没有损坏,如果需要可以放回去)。有没有办法在Windows上以编程方式禁用CapsLock键-编写一个带有键盘钩子(Hook)或类似东西的程序?我从哪里开始? 最佳答案 为了在Windows2000或WindowsXP机器上重新映射大写锁定(无需安装软件),我改编了在HowtogloballymapAltGrkeytoAltkey?中找到的信息。如下。将Caps映射到null是其中一个示例,但您可以

c - 如何在 Windows 上设置 pthreads?

我在Windows上找到了pthreads的实现here,但我无法让它正常工作。任何人都可以帮我安装pthreads吗?比如将DLL、.lib和.h文件放在哪里?另外,作为一个环境,我没有使用VisualStudio,而是使用Mingw的Codeblocks。我通常在Linux上开发,但这个项目必须在Windows上,并且我已经使用pthreads实现了一些代码,所以我不想使用'windows.h'中的Windows线程。 最佳答案 .dll可以放在您的PATH环境中列出的任何目录中变量。.lib文件可以放在LIB环境中列出的任何目

c++ - boost::interprocess::named_mutex 与 CreateMutex

我想从CreatMutex切换到boost::interprocess::named_mutex以将我的应用程序限制为单个实例。当应用程序正常运行和结束时,这两种方法都有效。但是,当应用程序崩溃并使用boost::interprocess::named_mutex时,锁不会被释放。我可以通过使用两个name_mutex来解决这个问题,但我真的不明白这个问题。为什么boost::interprocess::named_mutex的锁在应用程序崩溃时没有释放,但它是通过CreatMutex释放的?有什么区别?boost::interprocess::named_mutexmutex(boo

windows - 如何劫持 Caps Lock 键进行剪切、复制、粘贴键盘操作

这是我想要完成的:要复制,按下并释放CapsLock一次要粘贴,请快速按下并释放CapsLock两次要剪切,请按Ctrl+CapsLock我想这样做的原因是我经常发现自己低头按下正确的X/C/V键,因为它们彼此相邻(至少在QWERTY键盘上)。如何在标准键盘(使用Windows)上执行此操作,以便它适用于整个系统并对所有应用程序透明,包括对Windows资源管理器?如果标准键盘无法实现,您认为任何“可编程数字键盘”都可以做到这一点吗?在上面,“透明”是指“应用程序永远不会知道这个击键被翻译了。它只会得到常规的Ctrl+X/C/V代码,因此它的行为没有任何问题。”附言。不确定所有适合这个

c++ - 有人可以解释 Mutex 及其使用方法吗?

我阅读了一些关于Mutex的文档,但我得到的唯一想法仍然是它有助于防止线程访问已被另一个资源使用的资源。我从代码片段中获取并执行,效果很好:#include#include#includeusingnamespacestd;BOOLFunctionToWriteToDatabase(HANDLEhMutex){DWORDdwWaitResult;//Requestownershipofmutex.dwWaitResult=WaitForSingleObject(hMutex,//handletomutex5000L);//five-secondtime-outintervalswitc

c - MinGW,始终与 pthreads 链接

我最近一直在尝试使用MinGW进行开发,但出现了一些问题。似乎出于某种原因它总是想与pthread链接。我尝试用C语言编译一个简单的helloworld,但出现类似的错误ld.exe:cannotfind-lpthread很明显,它正在搜索pthread库,但没有找到。我从MinGW-get下载了库,正如预期的那样,编译和链接工作正常。然而,在剥离一个仅包含stdio.h的C语言简单helloworld的可执行文件后,该文件仍然有46k大。同样的文件在Cygwin上用gcc编译和剥离就像9k,MSVC也差不多。所以它提示缺少一个库。提供库可以解决问题并使其正常工作。但是在C中剥离的he

c# - 如何使用密码控件禁用 Caps Lock 警告?

当我打开CapsLock并聚焦密码控件时,我得到了这个。我想添加我自己的警告。我怎样才能禁用这个?我不介意P/Invoke或任何native代码,但它必须在C#中。 最佳答案 在您的表单中,像这样覆盖WndProc,这将拦截EM_SHOWBALOONTIP消息并阻止控件接收它:protectedoverridevoidWndProc(refMessagem){if(m.Msg!=0x1503)//EM_SHOWBALOONTIPbase.WndProc(refm);} 关于c#-如何使用