我想运行多个Gatling模拟,这些模拟会在文件中共享数据。
现在我有以下代码:
currentCell.containerView?.layer.cornerRadius = 8 // Your choice here.
currentCell.containerView?.clipsToBounds = true
TestAndUse接收一个字符串并检查文件是否包含它。如果是,则返回false,否则将字符串写入文件。 它适用于模拟中的数百个虚拟用户,但不适用于并行运行的模拟。我注意到在两个并行运行的模拟中,230行写在文件中,其中2行是相同的。
如果文件被另一个正在运行的模拟打开,我怎么能设法锁定文件?
谢谢你, 尤
答案 0 :(得分:2)
如果通过"并行运行模拟"你的意思是你正在执行多个模拟过程,那么问题是var available = true
的值和synchronized
上的锁都在每个进程的内存空间中,并且它们不是共享的。
如果是这种情况,您需要更改方法acquire()
以锁定所有正在运行的进程共享的内容,例如使用数据库上的锁表或检查是否存在指示的文件资源被锁定。