草庐IT

loadSomeHeavyData

全部标签

java - 如何确保一个方法只被多个线程调用一次?

我有以下结构:publicvoidsomeMethod(){//DOSOMESTUFFtry{doSomeProcessing();}catch(Exceptione){loadSomeHeavyData();doSomeProcessing();}}someMethod方法可能被多个线程并发调用。doSomeProcessing可能抛出异常(它在后端使用了一些可能过时的数据)。如果抛出异常,则loadSomeHeavyData();会执行一些耗时的任务,比如说“更新”所有当前数据,然后我可以调用doSomeProcessing();。问题:如何确保loadSomeHeavyData(