草庐IT

【JavaEE】进程和线程

全部标签

c++ - 如何在进程间通信中获取其他端点的进程ID

使用Win32C++API,我想知道哪个IPCmethod,允许多进程通信中的任何端点获取与之通信的进程的PID或HANDLE。换句话说,如果进程A从进程B收到一条消息:如果B没有(直接)在发送的消息中给出任何提示,A可以知道B发送了消息吗?如何?要求:B的PID不能在IPC消息中发送给A。通信的目的是简单的远程过程调用。但是,我不希望远程系统/主机上的进程调用本地主机上运行的进程提供的过程。我当然找到了RPCdocumentationonMSDN.但是,我想知道是否有比RPC更好的方法来实现我想要的。或者,如果您认为RPC是可行的方法,能否告诉我原因以及您是否知道除MSDN之外还有其

windows - 使用调试器如何从父进程获取子进程的 PID

我想知道,使用windbg或任何其他调试器如何获取父进程创建的子进程的PID。示例:附加到任意运行的“进程A”的调试器。当调试器附加到进程A(父进程)时,进程A使用kernel32!CreateProcess*或kernel32!CreateProcessInternal创建另一个子进程(进程B)。那么如何从进程A获取进程B的PID呢??主要是我想用pydbg来做,但如果我知道如何使用windbg手动实现这个,我希望我能用pydbg做同样的事情。提前致谢 最佳答案 在WinDbg中,还有命令.childdbg1,这样您就可以简单地调

python - 检查进程是否仅使用 Python 内置模块在 Windows 中运行

我知道有几种方法可以使用psutil或win32ui模块完成该任务。但我想知道是否可以选择使用Python仅内置模块来做到这一点?我也发现了这个问题:CheckifPIDexistsonWindowswithPythonwithoutrequiringlibraries但在这种情况下,对象由PID定位,我想使用进程名称来完成。 最佳答案 也许这对你有帮助:importsubprocesss=subprocess.check_output('tasklist',shell=True)if"cmd.exe"ins:prints

c - 使用 WinAPI 按名称获取进程中的指针变量

我不确定问题的标题有多清楚。这是我正在尝试做的事情:我有一个进程,它使用DLL库作为插件。这些库使用函数,与临界区对象同步。我希望所有DLL函数都与相同的临界区对象同步。我想到了以下几点:第一个DLL将初始化一个临界区对象,其他DLL也将使用它,而不是初始化一个新的。但是我怎样才能得到指向第一个DLL的临界区对象的指针呢?我想到的一个解决方案是使用NamedSharedMemory,并将指向临界区对象的指针放在那里。它会起作用,但感觉就像用火箭筒射苍蝇一样。是否有更简单、更惯用的方法来创建具有可检索指针的命名对象? 最佳答案 一个D

windows - 从批处理中通过其端口杀死多个进程

我想杀死几个监听特定端口(比如2100和2101)的进程。我可以通过它的端口杀死一个进程。但我想对多个端口(不止一个)做同样的事情批号(正在杀死端口2100)FOR/F"tokens=5delims="%%PIN('netstat-a-n-o^|findstr:2100.*LISTENING')DOtaskkill/F/PID%%P我如何创建如下命令(杀死2100和2101)FOR/F"tokens=5delims="%%PIN('netstat-a-n-o^|findstr:2100.*LISTENINGOR2101.*LISTENING')DOtaskkill/F/PID%%P

windows - Powershell get-service 通过管道传输到停止进程

Get-Service|Stop-Process-NameWSearch-WhatIfStop-Process:Theinputobjectcannotbeboundtoanyparametersforthecommandeitherbecausethecommanddoesnottakepipelineinputortheinputanditspropertiesdonotmatchanyoftheparametersthattakepipelineinput.Atline:1char:15+Get-Service|Stop-Process-NameWSearch-WhatIf+~~

c++ - 线程池如何让我处理许多客户端连接?

我想处理300到400个客户端连接,但我不想为每个客户端连接创建一个线程(或者创建400个线程有什么问题吗?)。所以我读到我应该使用线程池来解决这个问题,但我无法理解线程池实际上是如何解决这个问题的。我的意思是在我对线程池的理解中,开始接任务的线程数量是有限的。但是一旦一个线程接受了一个recv()任务,如果没有什么可读取的,它将立即阻塞!那么解决方案不应该是我应该有一种机制,让我在实际尝试阅读之前知道是否有东西要阅读吗?那么线程池究竟是如何解决我处理许多客户端连接的问题的呢?编辑:将read()更改为recv()。 最佳答案 正如

c++ - windows C++ 多线程

我在使用Windows上的多线程C++代码时遇到了一些问题。classtest{public:boolflag;test(){flag=true;}voidstart_do(){while(flag)puts("doing...");}voidstop_do(){flag=0;}}intmain(){testt;HANDLEh=CreateThread(0,0,(LPTHREAD_START_ROUTINE)t.start_do,0,1,0);Sleep(5000);t.stop_do();return0;}我想用flag改变doing状态。但它不起作用。谁能帮帮我!

windows - QProcess - 正在运行的进程,其路径包含空格

在我的应用程序中,我从本地应用程序数据文件夹运行一个分离进程。以下代码适用于大多数情况。voidexecuteApp(constQString&id){QStringprogram=QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);program=program+"\\..\\Programs\\MyApp.exe";QStringListarguments;argumentsstartDetached(program,arguments);if(!success)//TODO:Errorhan

多线程程序中的java.lang.NullPointerException

这是代码:importjava.applet.Applet;importjava.awt.Color;`importjava.awt.Graphics;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;@SuppressWarnings("serial")publicclassPongextendsAppletimplementsRunnable,KeyListener{finalintwidth=700,height=500;publicstaticintscore=0;Threadthread;HumanP