0

我有基于状态模式的程序。主线程通过启动第二个线程来启动第一个状态更改。所有休息状态都根据像观察者设计模式那样生成的第二个线程事件而改变。在某些状态更改情况下,我需要调用第一个(主)线程方法中的几个对象。该对象在主线程中创建,负责通过 TCP 传输信息。我不是这个对象类的作者。问题是如果我在第二个线程中调用这个对象方法它不起作用。解决这个问题的最优雅的方法是什么?我不想更改 TCP 对象的代码,因为它很大,我没有时间进行分析。

我必须使用 Java 1.4 版

4

1 回答 1

0

如果我没听错,你:

  1. 有两个线程;
  2. 一个线程处理 TCP 流量;
  3. 有时您必须从第二个线程启动 TCP 流量;
  4. 但它失败了,因为 TCP 代码不是线程安全的。

看起来您需要一个单线程执行器服务来完成所有 TCP 工作。您可以从任何其他线程向该执行程序服务提交任务。

于 2013-11-08T09:04:49.887 回答