每个线程都需要单独的监听器吗?

时间:2017-10-26 18:11:50

标签: java android multithreading listener

我有一个问题我已经被困了一天了。我正在使用线程实现测试。我不能在这里发布代码,因为它是保密的,但我可以给你结构:

class Something{
String error = "";
Listener listener = new Listener{
onError{
error = "something";
}
... 
create some threads
start threads

每个线程中的代码可能会或可能不会产生错误,从而修改错误。我担心的是,拥有多个线程,它会混淆"听众。

注意:监听器本身并不是线程(如果线程停止或类似的东西,则不会监听)。监听器是独立于线程实现的,但我确实需要它。

帮助非常感谢。如果不清楚,请提出任何问题。

1 个答案:

答案 0 :(得分:1)

我认为通过“混淆监听器”,你正在谈论由于从多个线程调用监听器而可能得到的错误。只需确保侦听器是“线程安全的”,并且可以从多个线程调用。例如,如果多个线程试图同时更改相同的结构,那么与变量或结构交互而不会锁定其他线程的侦听器可能会出现问题。

如果该方法仅处理为并发而锁定的局部变量或成员/全局变量,则不应该有问题。如果不知道您无法分享的代码,很难提供具体的建议。

在线搜索Java和Android的“线程安全”,您应该找到一些有用的信息。你要做的事情并不罕见或奇怪:这是常见的做法,但你必须小心。