线程澄清

时间:2012-02-27 12:01:53

标签: multithreading thread-safety

我对以下场景有一般架构级别的问题。

我的产品中有很多子系统,比如组件。

将每个子系统保持为一个单独的进程是否合适?或者将所有子系统保存在单个进程中的单独线程中是否合适?

我所有的子系统都会相互交互,以便互相提供/获取数据。

2 个答案:

答案 0 :(得分:0)

线程问题是为了安全地在它们之间直接传递数据,你需要在它们之间进行某种形式的同步。经常这样做,你将消除使用多个线程可能带来的任何好处。

我自己的做法是不使用线程,除非有绝对需要。如果我与串行或网络设备之类的硬件接口,我通常会使用更多线程,因为这会大大降低系统响应速度。

我倾向于遵循一个规则,即线程应该能够独立运行,与任何其他代码的交互很少(如果有的话)。如果一段代码严重依赖于另一段代码,则不应将它们放在单独的线程中。

您应该设计一个首先运行的系统(通过将子系统代码放在不同的库中),然后如果性能是一个问题,请查看线程是否有任何好处。通过这种方式,您可以避免调试线程的麻烦,直到绝对必要。

他们说保持简单。

答案 1 :(得分:0)

没有充分理由或需要创建任务?只需使用一个帖子。