我正在创建多个线程,所有线程都读取相同的属性文件(没有对属性文件进行写操作)。这会导致性能开销吗?因为多个线程多次读取相同的属性文件。
我正在创建多个线程,所有线程都读取相同的属性文件(没有对属性文件进行写操作)。这会导致性能开销吗?因为多个线程多次读取相同的属性文件。
我建议只需加载属性文件一次,然后在所有线程中使用同一个Properties实例。
仅加载一次可减少磁盘访问:
多次读取不是并发问题。
didierc的评论突出了可能存在的瓶颈:每次访问Properties都是同步的,因此当一个线程读取值时,所有其他线程都可能等待。
为了避免这种情况,您可以将Properties
的使用限制在构造函数或线程初始化中。不要在Thread.run()
方法内部的循环中使用p.getProperty(XXX)
。
Properties
继承自 Hashtable
,后者是同步的。 - didierc