日期:2014-05-20  浏览次数:20648 次

多用户执行相同程序的问题
因为这一段程序可以涉及到生成一些文件的问题,假设linux服务器上,a,b用户都登陆该服务器,执行这段程序主方法,问题就出来了,请教高手,有没有技术能在a执行的时候,对 程序就行锁定,让b执行不了。或者有更好的方法求教。

------解决方案--------------------
搞个文件,记录程序当前的运行状态,不过这样在并发高的情况下可能还是会冲突,如果是这种场景,就起个服务专门来处理咯
------解决方案--------------------
定一个全局静态变量
public static boolean runing =false;
如果有人运行设置为 true; 每次运行前查查这个变量则可.
------解决方案--------------------
引用:
定一个全局静态变量
public static boolean runing =false;
如果有人运行设置为 true; 每次运行前查查这个变量则可.


楼主这个不是多线程的问题了,如题,a,b都启动主方法,就会启动两个jvm了,设置静态变量也没法共享的。
可以考虑一下设置目录的权限来实现吧,不然就通过共享内存的方法,使用memcached做共享缓存
------解决方案--------------------
我开始以为一个用web实现的功能,看了题目好像不是。程序开始先判断有没有一个running.txt文件,有则说明已经有人在执行程序了,没有则说明有没有人,就在生成一个running.txt(还可以在里面写入一些信息),并开始执行,执行完了之后就删除running.txt,表示程序结束让其他人可以执行了。