作者xan (Price)
看板java
标题[问题] 同时跑同一只程式
时间Thu Mar 1 16:12:32 2012
最近再写Java Applet的程式, 需求是要同时多开於同一个网页
但发现一个的问题...假设在"同一个网页", "同一时间", 开4个一模一样的程式
程式里面某一个static值A, assign了某一个random数字.
4只程式各自独立, 理论上是4个不同的random数字.
assign前也先Print过, 确定是不同数字.
但结果会导致4只程式的A , 全部拿到相同的数字?
所以同一时间多开一模一样的程式, 会导致static值互盖??
如果真的这样那我得改写, 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.3.187
※ 编辑: xan 来自: 118.163.3.187 (03/01 16:13)
1F:→ dou0228:没 call setSeed? 03/01 17:17
我刚自己Google,找到了可能的原因,在这种情况下多开Applet
会在同一个JVM里面执行, 这个JVM里面的Classes跟DLL都会互相share
刚好我也有import DLL, 就算改写也还是会出问题...还要找其他方法
※ 编辑: xan 来自: 118.163.3.187 (03/01 17:23)
2F:→ awert:可以请问你是怎麽产生random数字的嘛? 03/01 21:06
我的Random数字其实是UUID, 所以不会重复, 而且我也找到解决方法了
就是在网页端的applet语法里面, 要加一行<PARAM name="separate_jvm" value="true">
这样有几个程式, java就会开几个JVM. 避免Class跟DLL记忆体互盖的问题
※ 编辑: xan 来自: 118.163.3.187 (03/02 11:10)