问题描述
ClassA{staticpublicFun(intx){......}}classB{A.Fun(i);}由于要读写数据库,要求参数相同时,Fun不能同时进行;参数不同时,Fun可以同时进行。如果将Fun函数Lock起来,那么每次无论传进去的参数是否相同都不能同时执行了。有什么办法可以解决吗?新人,分不多,请高人谅解。急盼解答!
解决方案
解决方案二:
我觉的用一个数组来保存你的参数,在fun里面坐如下逻辑1、如果传入的参数已经存在在数组上,则不允许执行。2、允许执行的参数执行完毕后将该参数移出。如果需要考虑传入相同的参数需要等待的话,就有点麻烦了
解决方案三:
有意思
解决方案四:
我也有想过这个方法,这个方法的缺点就是在写入参数时实际上是无法保证原子操作的,是不要把哪个保存参数的数组也lock起来呢?网上查了不少资料,都没有合适的,我本来觉得这个问题应该比较容易解决,现在发觉都没有好的方法。再看看有没有高人给出更好的解答。
时间: 2025-01-27 12:10:54