1樓:網友
這個你先把投票這個系統分層,最低成做成thread safty的就好了。
例如vector和hashtable就是執行緒安全的,或者你可以同sychronized關鍵字管理concurrency,collection還有乙個方法可以得到執行緒安全的集合的method,實在不願意。
這是最底層,如果你想在服務層管理訪問,可以用spring的singleton來管理服務層物件,在這個物件裡管理對entity物件的併發訪問。
說核餘的很抽象,沒有實際操作可能還有許多問題沒有考慮到。
的確會有make performance slow down但是不想你想得那麼嚴重,浪費資源嘛這個不會。
synchronized的使用要注意不要應用到太大的範圍就好了,還可以對投改磨滾票進行分流,分流後當資料庫伺服器的複合下降以後在把分流的merge到一起來,即時性差一點而已。
真正的瓶頸是你的io操作,而不是synchronized部分,不要太頻遊羨繁的訪問檔案和資料庫,cache一下。
2樓:野菜
1、沒經驗。如果是我就用property文拿埋件。感覺資料庫要麻煩點。
2、用synchronized關鍵字鎖定物件。
可以用 synchronized(object o)這個東西來鎖定"o"這個物件。
這樣就消伏螞安全了。所有執行緒排隊!
多執行緒併發執行是否意味著系統中執行緒越多越好?為什麼?
3樓:摔跤吧螞蟻
不是,執行緒多了可以提高程式並行執行的速度,但是並不是越多越好,其中,每個執行緒都要佔用記憶體,多執行緒就意味著更多的記憶體資源被佔用,其二,從微觀上講,乙個cpu不是同時執行兩個執行緒的,他是輪流執行的,所以執行緒太多,cpu必須不斷的在各個執行緒間快回更換執行,執行緒間的切換無意間消耗了許多時間,所以cpu有效利用率反而是下降的。
什麼樣的程式 多執行緒 會有問題
4樓:網友
-會導致系統崩潰的不完善的程式。
破壞多執行緒呼叫規則的程式。
獲得呼叫後不放手的程式:獲得執行許可權後自己不實現自己的堵塞,比如死迴圈等,比如需要死等其他執行緒提供的資料,但忘記允許其他執行緒能夠先於自己執行的程式。
執行時間過長而會影響到其他定時需要呼叫的執行緒執行,有可能導致流式資料不能得到及時處理的執行緒,或者自己處理資料演算法不夠優化,無法完成本職工作的程式。
其他情況(很多,只有想不到沒有做不到),可以通過系統聯調或試執行發現排除。
j**a 多執行緒問題 真的提高了效率嗎?
5樓:育知同創教育
多執行緒效率 我認為未必會高,而且有時候相反會低。
多執行緒並不是為了提高效率,而是不必等待 可以並行執行多條資料。
可以這麼想 我們通過xp系統複製檔案。你可以複製乙份檔案這叫是單線呈,但是你要等這個複製完了才能複製另乙份檔案,而且不能多複製。這樣很難受,所以你可以選擇多複製檔案,這就是多執行緒。
但複製多份檔案用的時間未必會比乙份乙份檔案所用時間少。只是它合理利用了時間進行了多個操作。
如果是買票系統就會用到多線呈。買票是同時進行的,如果乙個使用者乙個使用者等下去不是辦法,所以可以多個使用者同時買票,效率也就提高了。這裡的效率不是執行的效率而是時間的合理利用,多個線呈同時進行。
6樓:又出來蒲啦
比如a b兩個**塊,a需要30scpu,b需要20scpu;這個問題應該這麼理解:
如果ab倆個**塊在執行時不存在阻塞,那麼使用多執行緒(併發)去解決這個問題,是不會提高效率的,反而會由於cpu反覆切換時間片,導致效率有所下降;但是,當ab倆個**塊在執行的過程中存在阻塞的話,那麼使用多執行緒是會提高效率的。因為阻塞時,不需要cpu處理執行緒。那麼,如果a阻塞時間為20s,b阻塞時間為15s,那麼倆個執行緒分別處理這ab**塊的話,耗時應該為30s。
這個就是多執行緒併發程式設計的優點。
關於j**a的乙個併發和執行緒問題
7樓:小溼底
acbed
vector和arraylist的區別就是執行緒是否安全。體驗在併發訪問。
hashset是set的實現類,set介面實現類的物件新增進set集合中都是唯一併且不記錄新增順序的。
hashtable和hashmap跟vector和arraylist一樣。hashtable是執行緒安全的。
關於多執行緒提高程式執行速率的問題
8樓:網友
你要更巨集觀的 來理解。
現在你只是看到你這乙個程式,如果有10個程式 ,你這個乙個程式多開了乙個執行緒就把原本其他程式使用cpu的時間搶了過來。
原來你這個程式1分鐘內只能佔用cpu 10秒鐘 執行緒多了以後1分鐘內可以佔用20秒了沒準。
9樓:網友
我認為,多執行緒提高效率是有前提的。
如果只是讓cpu執行計算,就像你說得,現在的微機都是分時處理,單執行緒和多執行緒的效率幾乎一致,甚至單執行緒還要快一點,關於這個我是做過測試的。
多執行緒提高效率的情況是,比如需要等待io或者使用者響應的情況。
舉個列子,乙個ping的小程式。從**到,迴圈ping,假設每個**都ping不通,計算機等待3秒超時。
如果使用單執行緒,則需要255*3秒時間。如果使用c#執行緒池或者的平行計算,則會節約10倍左右的時間。
10樓:唔講你
如果從運算效率上來說,多執行緒的優勢必須要多核的cpu和64位的作業系統才能體現。
但是從一些程式的流程上來說,多執行緒是非常必要的,比如乙個winform的程式不用多執行緒處理的話,當你程式在運算某種數法的時候,你的主窗體就處於乙個假死狀態。
因為你的程式只有乙個執行緒,它處理了運算過程,放棄窗體的顯示這一塊,而多執行緒則剛好解決了這個問題。
問幾個j**a中有關執行緒的問題
11樓:匿名使用者
1.執行緒執行多久是作業系統時間片猛彎胡決定的,每次執行都可能有不同的結果。
2.共享和靜態是不同的,靜態肯定是共享,至於共享範圍你可以通過設定訪問許可權鬧虧設定,靜態可以在類建立物件前可以分配方法的入口執行。共享不一定是靜態。枝攔。
c#關於乙個執行緒的問題
12樓:網友
執行冗長耗時操作的同時保證介面不凝滯,這種問題可以用 backgroundworker解決。
如何設計一套較完善的網路投票系統
13樓:網友
這個網上例項很多,建議直接學習別人的經驗做搜。
主要是乙個資料庫的連線與計數問題。
如攜遊何保證同乙個session內不能計數多次(乙個會話只能投一純隱歷次有效票),如何保證同時投票的多人能夠都投票成功,即多執行緒問題,或資料庫臨時鎖定。
關於網上投票系統的開題報告
隨著網際網絡的普及,傳統的投票和調查方式已經不能滿足我們的需要 而 網上投票系統 除了能夠完成傳統的功能之外,更具有時效高和範旁蠢圍廣的優點,更符合現代社會的需要。.優勢 成本較低,使用簡單,全自動進行投票,無需人工干預 .投票速度快,非ip限制單執行乙個網上投票工具即可達每分鐘票以上 .不限使用電腦...
關於雙系統安裝的問題,關於雙系統安裝的問題
安裝系統順序錯誤,要首先安裝win2000 然後安裝xp。樓主,如果能把電腦帶來我就用雨林木風的工具可以給你5分鐘搞定。也不是說雨林木風多好,不過雨林木風確實還不錯。只是樓主不懂得處理罷了。暈了,怎麼會。你用系統盤啟動然後把系統檔案盤格式化。再安裝 要先安裝低版本的作業系統.也就是說你要先裝2000...
關於雙核和四核,主頻,快取,執行緒的問題
主頻高 快取大 對玩遊戲速度有提公升 現在的單機遊戲對多核支援的越來越好了 所以雙核沒四核好。固態硬碟對玩單機遊戲速度提示特別明顯 你用過就知道了 特別是在讀取方面!超執行緒對玩單機遊戲沒什麼用 你幾時聽說遊戲支援超執行緒了?只聽說支援多核把 在說一般玩家很少用到虛擬機器 職業玩家才用的上 在說i不支援超線...