最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

多線程計數(shù),怎么保持計數(shù)準(zhǔn)確的方法

 更新時間:2014年01月10日 15:35:41   作者:  
這篇文章主要介紹了多線程計數(shù)的方法,有需要的朋友可以參考一下

首先使用設(shè)計模式中的單件模式,防止多次初始化對象,造成訪問空間的不一致。

計數(shù)處要加lock,將其他線程計數(shù)暫時阻塞,保證計數(shù)的正確性。

如果要想實(shí)時計數(shù)實(shí)時輸出,可以將計數(shù)和輸出處一并lock處理,不然不同線程的計數(shù)和輸出結(jié)果未必按順序處理,

如此加鎖能保證按順序處理按順序輸出,不過這樣多少都 損失了一些性能

代碼中加鎖位置很重要

此程序會增加三次運(yùn)算,原因是本線程未到200次,但是必然會有一個線程第一次增加所以在add里再做判斷

復(fù)制代碼 代碼如下:

CommonSigleton MyCounter =CommonSigleton.Instance;
  /// <summary>
  /// 線程工作
  /// </summary>
public void DoSomeWork()
{
    ///構(gòu)造顯示字符串
    string results = "";

    ///創(chuàng)建一個Sigleton實(shí)例

    System.Threading.Thread.Sleep(100);

    int i = 0;
    while (MyCounter.GetCounter() < 200)
    {
        //保證計數(shù)與輸出一致,即便計數(shù)與輸出之間加上時間間隔也會為這塊區(qū)域加鎖,防止其他線程操作
        lock (this)
        {
            ///開始計數(shù)
            MyCounter.Add();
            System.Threading.Thread.Sleep(100);
            Thread thread = Thread.CurrentThread;
            results += "線程";
            results += i++.ToString() + "——〉" + thread.Name + " ";
            results += "當(dāng)前的計數(shù):";
            results += MyCounter.GetCounter().ToString();
            results += "\n";

            Console.WriteLine(results);

            // 清空顯示字符串
            results = "";
        }
    }
}

  public void StartMain()
  {

   Thread thread0 = Thread.CurrentThread;

   thread0.Name = "Thread 0";

   Thread thread1 =new Thread(new ThreadStart(DoSomeWork));

   thread1.Name = "Thread 1";

   Thread thread2 =new Thread(new ThreadStart(DoSomeWork));

   thread2.Name = "Thread 2";

   Thread thread3 =new Thread(new ThreadStart(DoSomeWork));

   thread3.Name = "Thread 3";

            thread1.Start();

            thread2.Start();

            thread3.Start();

   ///線程0也只執(zhí)行和其他線程相同的工作
   DoSomeWork();
  }
 }

相關(guān)文章

  • java布局管理之CardLayout簡單實(shí)例

    java布局管理之CardLayout簡單實(shí)例

    這篇文章主要為大家詳細(xì)介紹了java布局管理之CardLayout的簡單實(shí)例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Java并發(fā)包線程池ThreadPoolExecutor的實(shí)現(xiàn)

    Java并發(fā)包線程池ThreadPoolExecutor的實(shí)現(xiàn)

    本文主要介紹了Java并發(fā)包線程池ThreadPoolExecutor的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Java事件監(jiān)聽機(jī)制講解

    Java事件監(jiān)聽機(jī)制講解

    今天小編就為大家分享一篇關(guān)于Java事件監(jiān)聽機(jī)制講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Java ThreadLocal的使用場景總結(jié)

    Java ThreadLocal的使用場景總結(jié)

    ThreadLocal原本設(shè)計是為了解決并發(fā)時,線程共享變量的問題,但由于過度設(shè)計,從而導(dǎo)致它的理解難度大和使用成本高等問題。即便如此,ThreadLocal依舊有適合自己的使用場景,比如本文要介紹了這兩種使用場景,除了ThreadLocal之外,還真沒有合適的替代方案。
    2021-05-05
  • java項(xiàng)目導(dǎo)出為.exe執(zhí)行文件的方法步驟

    java項(xiàng)目導(dǎo)出為.exe執(zhí)行文件的方法步驟

    最近做了個項(xiàng)目,想要轉(zhuǎn)換成可執(zhí)行文件,那么java項(xiàng)目如何導(dǎo)出為.exe執(zhí)行文件,本文就介紹一下,主要使用jar2exe軟件,感興趣的可以了解一下
    2021-05-05
  • Spring Cloud Config配置文件使用對稱加密的方法

    Spring Cloud Config配置文件使用對稱加密的方法

    Spring Cloud Config提供了兩種加密解密方式,一種是對稱加密,一種是非對稱加密。這篇文章將先展示如何使用對稱加密。感興趣的朋友跟隨腳步之家小編一起學(xué)習(xí)吧
    2018-05-05
  • JAVA String.valueOf()方法的用法說明

    JAVA String.valueOf()方法的用法說明

    這篇文章主要介紹了JAVA String.valueOf()方法的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 詳解Java設(shè)計模式之職責(zé)鏈模式

    詳解Java設(shè)計模式之職責(zé)鏈模式

    責(zé)任鏈模式是一種行為設(shè)計模式,使多個對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Maven插件的安裝及使用

    Maven插件的安裝及使用

    這篇文章主要介紹了Maven插件的安裝及使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java下載遠(yuǎn)程服務(wù)器文件到本地(基于http協(xié)議和ssh2協(xié)議)

    Java下載遠(yuǎn)程服務(wù)器文件到本地(基于http協(xié)議和ssh2協(xié)議)

    這篇文章主要介紹了Java下載遠(yuǎn)程服務(wù)器文件到本地的方法(基于http協(xié)議和ssh2協(xié)議),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01

最新評論

合肥市| 禹州市| 潼关县| 延边| 增城市| 呼伦贝尔市| 沁源县| 井陉县| 志丹县| 淮安市| 普宁市| 黔西| 荥阳市| 南江县| 临沧市| 遂宁市| 云阳县| 靖宇县| 永胜县| 桂林市| 阿拉善左旗| 朝阳县| 康乐县| 新野县| 陇南市| 连江县| 南丹县| 秦安县| 乌鲁木齐县| 巴彦淖尔市| 北川| 高邑县| 佛教| 通州区| 慈利县| 沙湾县| 津市市| 从江县| 台中市| 株洲县| 石城县|