[問題] 同時跑同一隻程式
最近再寫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)
→
03/01 17:17, , 1F
03/01 17:17, 1F
我剛自己Google,找到了可能的原因,在這種情況下多開Applet
會在同一個JVM裡面執行, 這個JVM裡面的Classes跟DLL都會互相share
剛好我也有import DLL, 就算改寫也還是會出問題...還要找其他方法
※ 編輯: xan 來自: 118.163.3.187 (03/01 17:23)
→
03/01 21:06, , 2F
03/01 21:06, 2F
我的Random數字其實是UUID, 所以不會重複, 而且我也找到解決方法了
就是在網頁端的applet語法裡面, 要加一行<PARAM name="separate_jvm" value="true">
這樣有幾個程式, java就會開幾個JVM. 避免Class跟DLL記憶體互蓋的問題
※ 編輯: xan 來自: 118.163.3.187 (03/02 11:10)