【发布时间】:2011-02-28 06:19:35
【问题描述】:
感谢所有的帮助和支持,我面临一个问题,我有两个线程,一个是定时器线程,另一个是文件阅读器线程。现在我的主程序正在调用这两个线程。定时器线程在超时时中断主程序,文件读取器线程在出现一些 IO 错误时调用主线程。所以现在问题出现了,主程序必须知道是谁触发了中断,然后打印一些中断状态。那么我该如何实现呢?下面是一些我不想使用的东西。
- 一个用于设置超时的标志和另一个用于 IO 错误的标志(因为我的主程序很大并且有几个部分,我无法在任何地方进行此检查)
- 每个线程都有一个设置了状态码的成员变量,主程序在中断时读取它。(我对此没问题,但我仍然需要维护线程对象以获取状态,我的文件读取器线程是很多,所以我必须遍历每个线程才能找到被中断的线程)。
非常感谢您的帮助,即使是中断以外的其他方式也可以。
【问题讨论】:
-
定时器线程中断主程序是什么意思?您希望主程序中正在进行的任何处理都结束吗?为什么计时器或文件读取线程不能只生成输出(或将输出发布到事件处理线程,如果这是一个事件驱动程序)。我认为我们需要有关程序架构的更多信息来提出任何建议。
-
将输出发布到偶数处理线程????嗯,实际上我创建了 n 个线程来执行并发文件操作,如果我期待每个线程的输出,那么我必须等待每个线程的输出,然后我才能创建并触发下一个线程,所以它不会占用多线程的真正优势不是它。我需要的是我想创建那些 n 个线程,如果有任何错误,它们应该返回给我,我需要哪个线程(比如文件名)和什么错误。顺便说一下,我所指的主程序是事件处理线程在这里。
-
@sameer , 信号 ?? , 你能详细说明如何使用它们吗?
-
为什么?读取文件怎么会有超时?这一切似乎都过于复杂了。
标签: java multithreading interrupt