關於投票系統和執行緒的問題

2025-04-17 08:15:23 字數 3432 閱讀 2470

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不支援超線...