【发布时间】:2015-05-22 17:28:34
【问题描述】:
我正在撕毁一个设计不佳的子系统,它经历了两代“最小的变化”,现在已经变成一团糟。我遇到的一个有趣的问题是程序如何将整个程序选项传递到它启动的两个线程中:它将程序选项复制到每个线程选项中,并将每个线程选项传递给线程。这似乎很愚蠢,因为程序选项已经存储在一个全局对象中。
我可能应该指出,一旦命令行和配置文件被处理,这些选项是只读的,早在任何线程被操作之前。更改配置文件或命令选项都需要重新启动程序。
我知道这样做的程序员当时正在阅读设计模式,并且有点得到“减少未说明的依赖关系”的口头禅,但是从全局复制选项似乎既浪费时间又浪费空间。
那么,以线程可以访问它们而不复制它们的方式存储整个程序选项的建议方法是什么?
【问题讨论】:
标签: c++ multithreading design-patterns