我正在创建多个线程,所有线程都读取相同的属性文件(没有对属性文件进行写操作)。由于多个线程多次读取同一个属性文件,这会导致性能开销吗?
问问题
2942 次
2 回答
0
答案是“视情况而定”。除了读取属性文件之外,它主要取决于每个线程所做的工作量。如果每个线程除了读取文件之外还做很多工作,性能不会受到太大影响。
您应该更关心潜在的正确性问题:如果不同的线程使用不同的属性,程序会正确运行吗?否则,您的程序存在竞争风险错误:如果属性文件在程序运行时被更改(或删除),则某些线程可能使用不同的属性,从而产生不正确的计算。
属性文件用于程序配置。程序通常会在启动后不久读取所有配置信息,然后再进行任何实际工作。因此,如果配置错误,它们可能会很快失败。您可能应该这样做,将线程的产生视为稍后要做的真正工作。这还可以确保您的程序的用户在配置中的每个错误只收到一条错误消息,而不是每个线程一条消息。
于 2016-01-20T18:18:26.807 回答