jjzjj

thread-sleep

全部标签

c - 在事件中 sleep

我有一个多线程程序,其中我无条件地在一个线程(线程A)中休眠无限时间。当另一个线程(ThreadB)中发生事件时,它通过发信号唤醒Thread-A。现在我知道有多种方法可以做到这一点。当我的程序在windows环境下运行时,我在Thread-A中使用WaitForSingleObject,在Thread-B中使用SetEvent。它工作正常。我还可以使用基于文件描述符的模型进行轮询、选择。有不止一种方法可以做到这一点。但是,我试图找到最有效的方法。我想在Thread-B发出信号时尽快唤醒Thread-A。你认为什么是最好的选择。我可以探索基于驱动程序的选项。谢谢

使用 PROC_THREAD_ATTRIBUTE_PREFERRED_NODE 或 PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY 时的 CreateProcess 问题

当我调用CreateProcess并使用PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY扩展属性时,我不断收到错误87,ERROR_INVALID_PARAMETERS。我使用完全相同的代码调用CreateRemoteThreadEx,效果很好。此外,PROC_THREAD_ATTRIBUTE_PREFERRED_NODE似乎没有效果。那我做错了什么!?MicrosoftWindowsServer2008R2企业版,6.1.7601SP1内部版本7601我什至安装了这个服务包:AchildprocesscannotbecreatedbycallingaCreat

windows - 在 DllMain 中,是否可以在没有 DLL_THREAD_ATTACH 的情况下发生 DLL_THREAD_DETACH?

如果在我的DLL加载之前线程已经创建。然后,线程在我的DLL卸载之前退出。问题是:我的DllMain将收到DLL_THREAD_DETACH通知,还是没有关于退出线程的通知?感谢提前。 最佳答案 您会收到通知。它明确记录在MSDNarticle中对于DllMain:Therearecasesinwhichtheentry-pointfunctioniscalledforaterminatingthreadeveniftheentry-pointfunctionwasnevercalledwithDLL_THREAD_ATTACHfo

c++ - 替换 sleep 直到桌面上的窗口打开

当我打开一些软件应用程序时,我必须等待2-3秒,直到窗口显示在桌面上。我必须使用Sleep(2000);然后调用方法setalwaysontop。我正在尝试在我的代码中替换Sleep。我想从打开的窗口获取信号,然后调用一个方法,使打开的窗口始终位于最前面。这是我的代码:BOOLCALLBACKEnumWindowsProc(HWNDwindowHandle,LPARAMlParam){DWORDsearchedProcessId=(DWORD)lParam;DWORDwindowProcessId=0;GetWindowThreadProcessId(windowHandle,&win

python - 我们如何在 Linux 中使用 sleep() 来保持合理的 CPU 使用率,同时仍然具有良好的计时精度?

问题我正在尝试测试一个使用UDP数据包以预定速率进行通信的系统。我希望能够使用具有设定数据包速率的Python测试工具来测试该系统。采样率可能是20个数据包/秒或4500个数据包/秒等。在一些简单的测试中,我确定我的Windows机器每秒可以通过本地主机传递超过150,000个UDP数据包,因此我可以将其视为实验的上限。让我们从这个shell结构开始创建一个速率限制器。此代码的灵感主要来自thisthread中的代码.方法一importtime,timeitclassRateLimiter:def__init__(self,rate_limit):self.min_interval=1

c++ - 通过 IIS 应用程序池 w3wp.exe 调用 COM DLL 时未调用 DLL_THREAD_ATTACH

我在我的COMDLL中收到一些DLL_THREAD_ATTACH通知,但没有来自实际调用我的COMDLL的应用程序池工作线程。随后,从IIS发起的对DLL的调用到达从未调用过DLL_THREAD_ATTACH的线程。当DLL附加到dllhost.exe(通过DLL_PROCESS_ATTACH)时,仅通知应用程序池的第一个线程。这是缺陷还是功能,是否有任何解决方法? 最佳答案 DLL_THREAD_ATTACH经常被误解。您没有提供足够的信息,但您的问题很可能是由于此造成的:来自MSDNdocumentation,强调我的:DLL_

c - CodeBlocks(适用于 Windows)中的 sleep C 功能无法正常工作

我正在尝试用C(适用于Windows)做一个秒表,代码似乎可以工作,但sleep功能的时间与实时不匹配。进程返回0(0x0)执行时间:1.907秒按任意键继续。问题是执行时间大约是2秒,但应该只有1秒。只是想知道我做错了什么,因为Windows中的sleep功能接受毫秒作为参数,它应该可以工作。这是代码#include#include#includeintmain(){intmilliseconds=0;intseconds=0;intcounter;for(counter=0;counter 最佳答案 您正在休眠,超时为1毫秒。实

java - 在 Windows 上线程直到 Thread.join() 才停止

方法stopServer()服务器在Mac、Linux和UNIX计算机上运行完美,但当我尝试在Windows上关闭时,我发现它至少需要一秒钟每个用于由于ServerSocket超时而关闭的套接字。我希望它们像在Linux、Mac等中那样一次关闭所有,而不是在我调用Thread.join()时一次关闭一个。服务器代码publicclassFileServer{privateArrayListsockets=newArrayList();privateServerSocketfileServer;publicvoidstartServer(intport,intmaxThreads,int

Python检测Windows 10中的 sleep 模式

我想知道我是否可以在计算机休眠之前启动python程序中的函数或方法,这与deff():ifabout_to_sleep:do_stuffelse:do_some_other_stuff可以在windows10中运行 最佳答案 如果您不介意编写一个在后台运行的小型C++应用程序,它可以在检测到计算机进入休眠状态时调用您的python脚本。看看:Qtdetectwhencomputergoesintosleep? 关于Python检测Windows10中的sleep模式,我们在StackO

java - Windows 上的 IBM Websphere - OutOfMemoryError : Failed to create a thread

我有一个J2EE应用程序在Windows操作系统上的IBMWebsphereApplicationServer上运行。偶尔我会在javacore文件中看到一个OutOfMemoryError异常,其中包含以下信息。1TISIGINFODumpEvent"systhrow"(00040000)Detail"java/lang/OutOfMemoryError":"Failedtocreateathread:retVal-1073741830,errno12"receivedJava使用以下配置运行:-Xms512m-Xmx1350m-Xscmx50M分析javacore文件,线程数只有1