草庐IT

【JavaEE】进程和线程

全部标签

windows - 性能计数器,更改进程 ID?

我正在为Windows2008和IIS7上运行的网站创建性能计数器,因此进程的形式为(即第一个应用程序池的W3WP,第二个应用程序池的W3WP#1,第二个应用程序池的W3WP#2第三个应用程序池等)问题是:如果应用程序池被回收,或者机器被重启,会发生什么?相同的流程实例是否会映射到相同的应用程序池,或者它们会发生变化?(即w3wp将分配给第一个应用程序池,w3wp#1分配给第二个应用程序池,w3wp#2分配给第三个应用程序池,等等)而且,如果池进程关联发生变化,我们如何才能继续监视同一个应用程序池,而不必在每次系统回收时都重新配置性能计数器?澄清:我指的性能计数器不是ASP.Net计数

c# - 从其他进程读取和写入

我希望能够从另一个进程的内存中读取和写入。我从Kernel32.dll调用了函数Readprocessmemory()和WriteProcessmemory()并且我使用了GetProcessByName()查找进程的函数。这成功了。我看到了使用readprocessmemory()函数并在从kernel32.dll调用它之后声明它的示例,但我不明白它是如何工作的-如何我如何使用函数从另一个进程读取?我将不胜感激。 最佳答案 为了向另一个进程读写内存,您需要使用kernel32提供的ReadProcessMemory和WritePr

windows - 在 Windows 上运行的进程的完整路径

Windows中是否有任何命令可以给出正在运行的进程的完整路径tasklist没有给出完整路径。我不想使用任务管理器 最佳答案 tlist工具不再随Windows资源工具包一起分发(它已被tasklist取代),但能够列出每个进程的完整路径。您可以从downloadcenter获取副本. 关于windows-在Windows上运行的进程的完整路径,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

windows - 为什么注入(inject)的任何 DLL 都会使主机进程崩溃?

在对我的软件的新版本进行Beta测试时,一些用户报告了运行该应用程序时出现的异常情况。在这两种情况下都是:“应用程序无法正确启动(0xc0000142)”。我也看到它是0xc0000005。我发现一个本地系统也有这个错误,并发现在调试器下运行它时,“datamngr.dll”有访问冲突并且在堆上分配失败。我很快发现“datamngr.dll”是spy软件,并且像在系统的AppInit中一样被加载。一旦我清除了AppInit注册表项,这个问题就消失了。我通过ProcessMonitor检查了它,每当注入(inject)这个DLL时,我的应用程序就会崩溃。我以为它只是写得很糟糕的spy软件

windows - 将 Perl 脚本生成为具有特定名称的进程

我需要一个Perl脚本来生成一个任意名称的自身,即这样操作系统的其余部分就会将其视为例如“aaa.exe”。我的印象是这在Perl中是可能的,但现在我不确定。我在Windows7amd64上使用StrawberryPerl5.14,32位版本。这是我尝试过但不起作用的方法:#!perl-w#spawnself.plif($ARGV[0]){my$name=($ARGV[0]);system{"perl"}$name,$0;}else{print"runningas$^X,PIDis$$\n";print"pressEntertoquit...\n";my$trash=;}我根据exec

c# - 启动进程时出现错误 C0000142

我正在尝试在不同的帐户下启动一个进程(设置StartInfo.UserName/Password)。这在交互式运行时有效,但在尝试从通过任务计划程序启动的进程运行时失败并出现错误-1073741502(C0000142;“DLL初始化失败”)。我尝试切换到WIN32API并使用STARTUPINFO.lpDesktop=""创建一个新的WindowStation,但我遇到了同样的错误。更新:我刚找到一个相关问题,不幸的是它也缺少答案:Permissionsproblemwhenstarting.NETappfrom.NETserviceasadifferentuser?

windows - 来自另一个线程的套接字关闭调用是否总是使阻塞的 recv() 线程唤醒?

我找不到太多的文档来说明这是否应该发生:某个线程打开一个TCP(或其他流)套接字线程1开始阻塞recv()线程2使用SHUT_RDWR(或者我认为是SHUT_RD)在套接字上调用shutdown()线程1现在从其阻塞调用中“醒来”,并返回零,就像另一方关闭其套接字时一样。此行为出现在现代Linux和FreeBSD系统上。我还没有用任何其他人测试过它。这里是对MicrosoftMSDN帮助页面的评论:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx表明此行为在Windows

c++ - 使用 native Windows API 的 win32 线程安全队列实现

由于windows缺少条件变量(虽然从vis​​ta开始引入,但windowsXP和2003不支持),用c++实现线程安全的队列不是很容易。StrategiesforImplementingPOSIXConditionVariablesonWin32.我需要的是只使用CriticalSection或Mutex和Event,而不使用信号量和条件变量。我也试图找到一个只使用win32nativeAPI的确切实现,但没有成功。所以我自己完成了一个。问题是我不是100%确定代码是线程安全的。谁能告诉我好不好?classCEventSyncQueue{public:CEventSyncQueue

windows - Powershell - 捕获套接字和进程

我正在尝试这个小型powershell脚本每五秒查找一次netstat-ano输出,然后仅过滤任何IP地址上端口80上的传出连接,并捕获打开套接字的相关进程。我认为这里的问题是如果输出中有多个条目则它无法处理数组。这里缺少什么?有更好的方法吗?while(1){netstat-ano|?{$_-like"*10.10.10.10:**:80*"}|%{$_-match"\d+$";$matches|ForEach-Object{Get-Process-id$matches[0]|Format-List*;(Get-Process-id$matches[0]).WaitForExit()

c++ - 如何使进程 B 仅在进程 A 处于事件状态时运行

我有一个启动另一个进程B的进程A。当前,进程B在退出之前等待由进程“A”发出的信号(WaitForSingleObject),一旦设置了信号,进程B就会退出。但是,当进程A意外终止或崩溃时,我最终进程B仍在运行。我怎样才能让B无限期地等待信号,除非进程A崩溃了?换句话说..进程B应该只在进程A运行之前保持事件状态。谢谢 最佳答案 WaitForSingleObject在进程A的进程句柄上;它会在A死亡时发出信号。另一种方法是将B作为调试器附加到A。然后您将在进程退出时收到一个事件,并且可以完美同步退出。