草庐IT

【JavaEE】进程和线程

全部标签

java - 使用 Java 运行时添加注册表项,导致进程 reg.exe 永远运行

我有这段代码可以将可执行文件插入到启动注册表中:privatestaticvoidaddToWin(Filef,Stringparam)throwsIOException{Stringname=generateName(f);Stringcmd="regaddHKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run/v"+name+"/tREG_SZ/d\""+f.getAbsolutePath()+param+"\"";Runtime.getRuntime().exec(cmd);}这有效,但问题是在运行它之后我在任务管理器中有一

c - 在 win32/C/C++ 中共享内存和 IPC 的最快进程技术

我正在编写一个导出标准化接口(interface)(VST)并由外部应用程序托管的实时库。库必须发布一个表,该表可以被同一进程中的任何线程查看(如果它知道在哪里查看)——明确地说,这个表必须可以被进程空间中的所有dll查看——如果他们知道在哪里查看看。访问表必须很快。虚拟内存似乎有点矫枉过正,我考虑过使用窗口句柄(现在仍然可以)来消息泵,但我更喜欢一种更快的方法,如果有的话。此外,PE中的共享数据段是我希望尽可能避免的。我想我几乎宁愿使用窗口句柄。我目前不关心同步,事后我可以处理。我只是想要一些关于在进程空间内发布表的最快技术的建议。 最佳答案

ruby - 是否可以从 ruby​​ GUI 脚本 (.rbw) 启动控制台进程

我有一个GUIRuby工具需要生成一个子命令行进程,例如ping。如果我在Windows上执行此操作,控制台窗口将出现并消失以进行控制台进程,这非常烦人。是否可以从不显示控制台窗口的GUIRuby脚本启动进程?如果我使用反引号运算符或Kernel#system,将出现控制台窗口,请参见下面的示例:require'Tk'require'thread'Thread.new{`ping8.8.8.8`}TkRoot.new.mainloop 最佳答案 问题是Windows上的每个可执行文件在构建时都被定义为GUI可执行文件或控制台可执行文

windows - lua lane 线程间通信

有没有办法让luachannel线程进行通信或从外部访问线程?不使用文档提供的繁忙循环。一个简单的例子是,一个线程使用一个变量,更新它,改变它等等,另一个线程或主程序能够访问/获取该变量。这可以用luachannel吗?我的意思是纯粹在lua中而不是在c/c++中。 最佳答案 在使用多线程时,您通常donotwantto"update/change"avariablefrommultiplethreadswithoutanysynchronization-这可能会导致由于对变量/表等的不同步访问而导致随机出现的错误。相反,您应该依靠

wpf - 从多个后台线程更新 UI

这里的问题有点抽象。我们都知道,对于一个后台线程来更新一些UI元素。Dispatcher.Invoke()是唯一的选择(是吗?)。但是,Dispatcher.Invoke()本身将更新任务委托(delegate)给UI线程。考虑以下情况:后台线程经常更新UI。数十个线程更新同一个UI。Dispatcher对象会继续将更新任务委托(delegate)给UI线程,而UI线程可能会变慢。什么是可能的解决方案?我们如何在线程模型与WPF非常相似的Windows窗体中解决这样的问题?WPF是否提供任何其他线程技术?问候, 最佳答案 如果您通过

c# - 进程被杀死后可能导致内存泄漏?

我正在编写一个生成并终止Chrome浏览器的应用程序。虽然我以编程方式终止进程(与通过Windows任务管理器终止进程的效果相同),但有人建议这也可能导致内存泄漏——即来自内核资源等元素,这些元素未与原始进程正确关联.在进程被终止后,应用程序是否可能泄漏内存或以其他方式拥有不可回收的内存? 最佳答案 这可能会发生,但当它发生时,它永远不会是程序中的错误。它总是由Windows内核代码或某些内核驱动程序中的错误/错误引起。此外,您甚至不太可能在Windows的标准安装上遇到此类行为。 关于

c# - 基于处理器类型在 C# 应用程序中运行可变线程

我正在用C#编写一个Windows应用程序,它本质上是一个多线程应用程序。但我正在修复,因为此应用程序可以在Celeron/P-IV系统上运行到Corei7系统。因此,我无法决定如何确定为此应用程序生成的线程数。有什么方法可以根据用于利用CPU最大功率的处理器来确定我可以产生多少线程,并使我的应用程序不滞后/减慢/卡住?您是否使用任何一种通用公式?谢谢。 最佳答案 我会考虑使用ThreadPool。据我所知,.NET框架自行管理最佳线程数(http://msdn.microsoft.com/en-us/library/0ka9477

c# - 创建一个不是创建进程的子进程的新进程

我正在开发一个应用程序,其中进程A的多个实例依赖于进程B的单个实例。我的想法是进程A的一个实例启动进程B,以便所有实例A的可以使用它。A的实例托管在第3方进程中,并且可以在不可预测的时间点拆除(通过终止进程树)。因此,进程B不是进程A的任何实例的子进程至关重要。我曾尝试使用PInvoke来调用CreateProcess,在创建标志中指定DetachedProcess(0x08),但这没有用(请参见下面的代码)。[DllImport("kernel32.dll")]privatestaticexternboolCreateProcess(stringlpApplicationName,s

c# - 如何在 Windows 中的那个时刻查找特定进程的 cpu 使用率

是否有可能在Windows中以编程方式(以任何语言)了解正在运行/空闲进程的CPU使用情况? 最佳答案 如果您不关心支持旧的Windows版本(早于WindowsXPSP1),您可以使用GetSystemTimesWin32APIfunction.否则你必须使用PerformanceCounters. 关于c#-如何在Windows中的那个时刻查找特定进程的cpu使用率,我们在StackOverflow上找到一个类似的问题: https://stackover

c - 如何枚举内核中指定进程的所有打开句柄(Windows)

我有一个内核驱动程序。我如何枚举我的内核驱动程序中指定进程的所有打开句柄?我想关闭这些句柄。谢谢! 最佳答案 Iwanttoclosethesehandles.就其值(value)而言,仅仅因为可以做某事,并不意味着应该做。这是个坏主意。也就是说,可以使用对Zw/NtQuerySystemInformation的未记录调用来枚举所有进程的所有句柄。具有信息类SystemHandleInformation。使用这些术语进行网络搜索会得到您想要的结果。 关于c-如何枚举内核中指定进程的所有打