三個線程共享count, 但count++不是原子操作,包括count與比較sum時候 也是, 會導致出現多線程問題。
成都創新互聯公司是一家專業從事網站設計、成都網站制作、網頁設計的品牌網絡公司。如今是成都地區具影響力的網站設計公司,作為專業的成都網站建設公司,成都創新互聯公司依托強大的技術實力、以及多年的網站運營經驗,為您提供專業的成都網站建設、營銷型網站建設及網站設計開發服務!
你的答案有兩個問題:1,obj不是static,就是說每個線程都有自己的obj,synchronize鎖的是自己線程的obj,不能起到阻塞其它線程的作用。運行的話會看到有的票被出售多次。
這個不難,我正好有個類似的模板,稍微修改下文字,調整下就可以用了。
生成100個對象,對象有個屬性,其中10個是大獎,40個是小獎,50個是無獎。放到一個List里。每次抽中的步驟 隨機生成0-List長度之間的數值 ,去取List中的相應對象,并移除這個對象。代碼如下。
樓上的代碼是我查API編寫的,關于繪圖的位置你可以自己再設置一下,大體上就這樣。建議樓主沒事多查查guan網給API文檔,有利于java的學習。(switch語句我用的不多,所以漏掉了default,建議樓主自己加上吧)希望能幫助你。
1)static void shuffle(List list) 使用默認隨機源對列表進行置換,所有置換發生的可能性都是大致相等的。
))) { ts.add(str);} } } Iterator I = ts.iterator();while(I.hasNext()) { System.out.println(I.next());} } LS方法不錯,可惜沒有把重復的值去掉,5和5的位置交換了值還是相同的,要去掉其中一個。
說下我的想法 可以把單詞存在一個list里,也可以直接存在數據庫中。利用Random創建一個隨機數,處理成什么形式的數字看要求,我覺得4位的10進制數就行 然后:list用list.get(),在數據庫中用ResultSet遍歷。
下面的程序可以直接通過編譯運行,自己尋找要用到的代碼段。
//這是個聊天程序, 在ECLIPSE 運行 Client.java 就可以了。
直接定義兩個接口學生接口里面定義一個學費的變量,老師接口里面定義一個工資變量,eclipse里面可以自動幫你添加相關變量的getterhe setter方法的。
EJB 輔助書籍:《精通EJB(第三版)》以上書籍可下電子書,但是電子的看久了蠻累,眼睛受不了。