各位大牛小弟现在遇到一个问题就是使用多线程调用一个耗时的方法如何同步?代码大体如下:
Java代码:
final ScheduledExecutorService scheduler = ExecutorsnewScheduledThreadPool();
final BusinessService service = new BusinessService();
for(int i = ; i < ; i++)
{
schedulerscheduleWithFixedDelay(new Runnable(){
@Override
public void run() {
servicehandleBusiness();
}
} i TimeUnitMINUTES);
}
这个时候如果在handleBusiness()方法上加上
Java代码:
synchronized
其它线程就进不了这个方法因为这个方法需要耗时分钟左右大家帮忙想想有啥好的解决办法能让所有线程不等待就可以调用这个方法又保持原子操作
解决方法handleBusiness()写成线程安全的就好了