草庐IT

【JavaEE】浅识进程

全部标签

windows - 一个进程的 read() 可以看到另一个进程的部分 write() 吗?

如果一个进程执行大小(和对齐)S(例如8KB)的write(),那么另一个进程是否有可能执行读取(也是大小和对齐S以及同一文件)看到混合旧数据和新数据?写入过程会为每个数据block添加校验和,我想知道是否可以使用读取过程在后台验证校验和。如果读者可以看到部分写入,则会错误地指示损坏。此处适用哪些标准或文件?有没有一种可移植的方法来避免这里的问题,最好不要引入大量锁定? 最佳答案 当一个函数被保证完成而没有任何其他进程/线程/任何东西看到处于半完成状态的任何机会时,它被称为原子.它要么已经发生,要么没有发生,没有中途。虽然我不能与W

windows - 查找在 Windows 上创建文件的进程

有没有办法找到在Windows上创建特定文件的进程? 最佳答案 一般来说,不会。Windows不会记录创建给定文件的进程。您也许可以使用SysInternalsProcessMonitor之类的东西,它可以Hook文件(和注册表I/O),看看您是否可以捕获正在创建的文件,但是一旦它被创建(并且最后一个文件句柄已关闭),Windows会忘记它来自哪个进程。如果文件在当前正在运行的进程中打开,您可以使用ProcessExplorer(也来自SysInternals)找出是哪个进程。如果您认识文件扩展名,有时会有所帮助。或者,也许您可​​

.net - 两个 .NET 进程何时可以共享 DLL 内存?

我有两个引用同一个类库的ASP.NET网站。目前我们发布的网站有两个类库副本。这会浪费内存吗?操作系统是否知道文件的两个副本相同,因此可以共享DLL代码段的内存?如果我将它复制到GAC或另一个共享位置,使其只有一个物理文件,它会映射更少的总内存吗? 最佳答案 这个问题的前提是错误的,ASP.NETDLL不包含任何代码。只有数据、IL和程序集list。抖动从IL生成机器代码,该代码进入AppDomain的加载程序堆。进程的私有(private)字节,不共享。获取从IL生成的机器代码的一份副本是可能的,您必须运行Ngen.exe。它预编

c++ - 如何获取当前进程的线程 ID 列表

EnumProcess或CreateToolhelp32Snapshot函数帮助我们获取进程信息,包括进程ID。但是我想知道获取当前进程的线程id列表。DWORDGetMainThreadId(DWORDpId){LPVOIDlpThId;_asm{moveax,fs:[18h]addeax,36mov[lpThId],eax}HANDLEhProcess=OpenProcess(PROCESS_VM_READ,FALSE,pId);if(hProcess==NULL)returnNULL;DWORDtId;if(ReadProcessMemory(hProcess,lpThId,&t

windows - 调试启动后终止的进程

我需要调试一个在启动后立即终止的进程(从外部exe启动),所以我没有时间附加。我该如何调试它?UPD我没有那个外部exe的源代码;我可以反编译,但不可能编译回来 最佳答案 您需要在暂停状态下启动您的调试进程。VisualStudio能够做到这一点,只需像这样调用调试器:devenv/debugexeyourprog.exe该进程将开始挂起,因此您将能够在崩溃前迭代第一条指令。查看详细答案here. 关于windows-调试启动后终止的进程,我们在StackOverflow上找到一个类似的

c++ - 如何在C++中为Windows中的用户获取最大进程数

我有一个非常琐碎的问题,但我无法在Google中得到任何答案。据我所知,用户可以创建的最大进程数是有限制的。我怎样才能将这个变量放入C++中?我正在使用VisualC++,VisualStudio2013。提前致谢。 最佳答案 我认为没有任何此类上限,但这可能取决于您的虚拟堆栈空间。您也可以查看PushingtheLimitsofWindows:ProcessesandThreads 关于c++-如何在C++中为Windows中的用户获取最大进程数,我们在StackOverflow上找到

c++ - 如何在 Windows 内核模式下获取进程使用的 CPU 时钟周期?

正如标题所暗示的,我对获取仅在内核模式下进程使用的CPU时钟周期很感兴趣。我知道有一个名为“QueryProcessCycleTime”的API可以返回CPU时钟进程的线程使用的周期。但这个值包括在用户模式和内核模式下花费的周期。我怎样才能获得仅在内核模式下花费的周期?我需要使用性能计数器来获取它吗?如果是,我应该使用哪一个?预先感谢您的回答。 最佳答案 我刚刚发现一篇有趣的文章,几乎描述了您的要求。在MSDNInternals上.他们在那里写道,如果您使用的是C#或C++/CLI,您可以轻松地从System.Diagnostic.

windows - 在 Windows 上使用文件关闭进程

我想关闭所有在Windows上使用文件的程序。我有一个我在Linux上想要的例子:pids=`lsof|grep$fic|grep-v"grep"|tr-d'\t'|cut-d""-f2`谢谢! 最佳答案 请将标签从bash更改为批处理并安装Handle这样就解决了目的 关于windows-在Windows上使用文件关闭进程,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2321

java - 如何通过java程序获取exe运行的进程id

我正在通过javaruntimeapi运行一个exeProcessprocess=runTime.exec("cmd.exe/cstartabc.exe"+Id,null,newFile("D:/My"));并像这样使用jna检索进程ID-Kernel32.INSTANCE.GetProcessId((Long)f.get(process));但返回的进程ID不是abc.exe而是cmd.exe.....我需要abc.exe的进程ID。不知道如何获得任何人都可以帮助。 最佳答案 process是java.lang.Process类型

python - 在 Windows psutil 中查找进程是否正在运行

process_name="CCC.exe"forprocinpsutil.process_iter():ifproc.name==process_name:print("have")else:print("Donthave")我知道CCC.exe正在运行。我用2.7和3.4python尝试了这段代码我也导入了psutil。然而,该过程在那里,但它正在打印“没有”。 最佳答案 name是proc的一个方法:process_name="CCC.exe"forprocinpsutil.process_iter():ifproc.name