在Java中读取同一属性文件的多个线程是否会导致性能问题?

rag*_*jan 3 java io multithreading

我正在创建多个线程,并且所有线程都读取相同的属性文件(没有对属性文件执行写操作).这是否会导致性能开销,因为多个线程会多次读取同一属性文件?

Aub*_*bin 5

我建议加载属性文件一次,并使用所有线程使用相同的Properties实例.

加载一次减少磁盘访问:

  • 这个应用程序的性能更好
  • 更好地利用整个系统

多次读取不是并发问题.

didierc的评论强调了一个可能的瓶颈:每次访问属性都是同步的,所以当线程读取一个值时,所有其他的可能都会等待.

为避免这种情况,您可能会限制Properties在构造函数中使用或初始化线程.不要p.getProperty( XXX )Thread.run()方法内部使用循环.