【发布时间】:2020-10-14 02:42:42
【问题描述】:
我有一个与 Java 中的同步和并发相关的问题。
所以我有一个方法,像这样:
private boolean loadData(final Integer fundId, List<Trade> trades) {
synchronized (fundId) {
// do lots of things here and finally load the trades into DB
}
}
在我做这个改变之前,完整的方法loadData是同步的private synchronized boolean loadData。但是,我的要求是,如果说,fundId - 1 正在处理,那么我可以允许并发处理除 1 之外的任何其他fundId。
因此,上面的代码也不起作用,因为锁将在 Integer 对象上,因此不能同时处理其他fundId。 有没有办法根据方法参数实现并发处理?
【问题讨论】:
标签: java java-8 concurrency parallel-processing synchronization