Java中的信号 我用C++信号< /p>
信号作用Java中的信号 我用C++信号< /p>,java,Java,信号作用 struct sigaction sigact; 并将所有属性设置为使用信号 现在我想在Java中使用它,Java中的等价物是什么 在中包括“signal.h” 我有两条线索: 从程序开始运行一次 另一个在信号警报处运行 我用C++实现了函数的功能,现在我想用java < /p>实现它。 编辑以实现我的目标: 实际上,我的目标是在信号从第一个线程到达时运行第二个线程,这听起来像是一个典型的“” 在纯Java中,您无法访问OS信号。它们是特定于平台的,Java冲突与平台无关。另外:使用
struct sigaction sigact;
并将所有属性设置为使用信号
现在我想在Java中使用它,Java中的等价物是什么
在中包括“signal.h”
我有两条线索:
我用C++实现了函数的功能,现在我想用java < /p>实现它。 编辑以实现我的目标:
实际上,我的目标是在信号从第一个线程到达时运行第二个线程,这听起来像是一个典型的“” 在纯Java中,您无法访问OS信号。它们是特定于平台的,Java冲突与平台无关。另外:使用JNI从信号处理程序调用Java可能是“有趣的”(如中所述) 因此,你必须回到绘图板,思考你想要解决的问题是什么,停止思考如何用信号解决它 这就是说:如果你坚持信号,并且不怕使用内部的东西,而这些东西可能会一时兴起而改变:看看
sun.misc.Signal
编辑现在问题清楚了,信令发生在一个JVM中。因为这种信号在Java中肯定是错误的
因此,最简单的解决方案是直接从第一个线程中创建并启动第二个线程。不需要信号
下一个最佳解决方案是使用第二个线程中的
Object.wait()
(使用线程本身以外的任何对象实例)和第一个线程中的Object.notify()
或notifyAll()
对“集合点”进行编码。在Java教程中搜索这些术语将提供足够的示例。因此听起来像是一个典型的“”
在纯Java中,您无法访问OS信号。它们是特定于平台的,Java冲突与平台无关。另外:使用JNI从信号处理程序调用Java可能是“有趣的”(如中所述)
因此,你必须回到绘图板,思考你想要解决的问题是什么,停止思考如何用信号解决它
这就是说:如果你坚持信号,并且不怕使用内部的东西,而这些东西可能会一时兴起而改变:看看sun.misc.Signal
编辑现在问题清楚了,信令发生在一个JVM中。因为这种信号在Java中肯定是错误的
因此,最简单的解决方案是直接从第一个线程中创建并启动第二个线程。不需要信号
下一个最佳解决方案是使用第二个线程中的Object.wait()
(使用线程本身以外的任何对象实例)和第一个线程中的Object.notify()
或notifyAll()
对“集合点”进行编码。在Java教程中搜索这些术语将提供足够的示例。您能更详细地描述一下您想要实现的目标吗?信号可能不是正确的工具。@Mat-如果它们是正确的工具,那么Java就是错误的语言。因为1)你不需要信号。对于2)通常的解决方案是在某个端口上为简单命令使用套接字列表。@usr,您没有足够详细地描述您的目标。仅仅因为你在C++中做了一些事情并不意味着你应该用java中的信号来做。请更准确地描述你真正想要做的事情。谢谢Mat,我添加了我的目标。你能更详细地描述你想要达到的目标吗?信号可能不是正确的工具。@Mat-如果它们是正确的工具,那么Java就是错误的语言。因为1)你不需要信号。对于2)通常的解决方案是在某个端口上为简单命令使用套接字列表。@usr,您没有足够详细地描述您的目标。仅仅因为你在C++中做了一些事情并不意味着你应该用java中的信号来做。请更准确地描述一下你实际上想做什么。谢谢,Mat,我添加了我的目标