Java接口并发控制:使用锁实现单次访问限制
使用锁的方式设置接口每次只能访问一次,接口未跑完的情况下再次访问的时候立即给予报错提示内容:可以使用锁的方式来实现接口每次只能访问一次的需求。在方法上加上synchronized关键字,确保同一时间只有一个线程可以进入该方法。在方法执行期间,其他线程再次访问该方法时会被阻塞,直到当前线程执行完毕。\n\njava\nprivate static final Object lock = new Object();\n\npublic Result<?> list() throws java.lang.Exception {\n synchronized (lock) {\n log.info("供应商发票");\n result = odsSupplierinvoiceHeadService.createSupplierinvoiceToSAP();\n if (result.get("success").equals(false)){\n //发送邮件\n sendMail2(result.getString("message"));\n return Result.error(result.get("message").toString());\n }\n return Result.ok("同步成功!");\n }\n}\n\n\n这样,当一个线程正在执行list方法时,其他线程再次访问list方法时会被阻塞,直到当前线程执行完毕。在执行完毕后,其他线程才能进入方法执行。这样就可以保证接口每次只能访问一次,并且在接口未跑完的情况下再次访问时给予报错提示。
原文地址: https://www.cveoy.top/t/topic/qfZl 著作权归作者所有。请勿转载和采集!