如何将多线程任务转换为单线程任务?

时间:2012-10-09 00:53:58

标签: multithreading

例如,如果一个项目需要一个日志系统,而不是直接写日志文件或将日志文件包装在一个监视器对象中,我们就可以启动一个专用的日志线程,这是唯一要记录的线程。

如果其他线程想要写一个日志,它会向这个专用线程发送一条消息。然后,日志线程可以按顺序将日志从其消息队列写入日志文件。

我认为这是一个比多线程更好的设计 - 每个例程编写日志应该使用某种同步方案。

我是对的吗?你能提供更多的方法/例子来解决多线程问题吗?

1 个答案:

答案 0 :(得分:2)

  

我认为这是一个比多线程更好的设计 - 每个例程编写日志应该使用某种同步方案。

在设计中,专用线程是唯一写入日志的线程,您必须也使用同步,除了不需要同步对日志的访问权限,您需要同步访问写入的线程的生产者 - 消费者队列的访问权限。日志。

  

您是否可以提供更多方法/示例来将多线程问题转变为简单的单线程问题?

问题决不会变得更简单:同步的需要并没有消失,只是从一个地方转移到另一个地方。