彩巴巴彩票官网|91彩客彩票官网
歡迎來到學術參考發表網

VB.NET下多線程技術的應用

發布時間:2015-11-30 10:40

摘 要:線程是操作系統分配時間的基本實體,可由系統調度的一個最簡單的代碼單元,采用多線程技術的應用程序可以較好地利用系統資源。用來創建和維護線程的基類是system.Threading.Thread類。一個進程可以創建一個或多個線程以執行與該進程關聯的部分程序代碼。

關鍵詞:線程;同步;數據;程序
  1、線程、多線程的概念和意義:
  在操作系統中,進程被定義為應用程序的運行實例,是應用程序的一次動態執行。它擁有自己的地址空間。每一個進程都擁有一個主線程,同時還可以建立其他線程。線程是操作系統分配時間的基本實體,是可以由系統調度的一個最簡單的代碼單元,每個線程占用的時間由系統分配,系統不停地在線程之間切換。也可以將線程理解為是進程內部程序執行的路徑,是進程的一個執行單元。從根本上說,線程是負責執行包含在進程的地址空間中的程序代碼。
  采用多線程技術的應用程序可以較好地利用系統資源。多線程技術的主要優勢在于充分利用CPU的空閑時間片,用盡可能少的時間來對用戶的要求做出響應,使得進程的整體運行效率得到較大提高,同時增強了應用程序的靈活性。更重要的是,由于同一進程的所有線程是共享同一內存,所以不需要特殊的數據傳送機制,不需要建立共享存儲區或共享文件,從而使得不同任務之間的協調操作與運行、數據的交互、資源的分配等問題更加易于解決。
  2、Visual Basic.NET多線程編程的實現
  用來創建和維護線程的基類是system.Threading.Thread類。一個進程可以創建一個或多個線程以執行與該進程關聯的部分程序代碼。使用ThreadStart委托指定由線程執行的程序代碼。在線程存在期間,它總是處于由Threadstate定義的一個或多個狀態中。可以為線程請求由ThreadPriority定義的調度優先級。大部分的Thread成員都是虛成員,因此只可以由一個特定Thread類的實例訪問。使用AddressOf語句為要運行的procedure傳遞委派。以下代碼創建Thread1實例,將名為method1的sub過程作為單獨的線程運行。
  Dim Thread1 As New System.Threading.Thread(AddressOf method1)
  Thread1.Start
  相類似的,使用Thread類的Sleep方法可以阻滯當前線程,使用suspend方法可以掛起線程,使用Suspend可以重新啟動掛起的線程,使用Abort方法可以停止一個線程,使用Join方法可以使當前線程等待其他線程運行結束。
  3、線程的同步
  多線程應用程序在執行時被分成多個單元執行,這些單元被搶先型的操作系統分配在不同的時間段運行,并且擁有不同的優先權。根據線程的優先權和專門的調度算法,操作系統分配給每個線程運行一段時間,稱為時間片(timeslice)。當某一時間片過去時,線程就會掛起并放回到隊列中,而另一個線程就會被分配另一個時間片,接著運行。當線程掛起時,它的狀態就會被保存下來,以便下一次可以由停下來的地方繼續工作。
  如果是在獨立的線程中運行各種處理,而不需要訪問共享的資源,則無需擔心線程的同步問題。不過,當兩個線程讀寫同一個數據時,如果協調不好的話,線程可能讀的數據是不完備的或者根本就讀不出來數據;而寫的數據也可能寫不進去。為了防止這種情況發生而采取的處理措施稱之為線程的同步。在Visual Basic.NET的.NET Framework的CLR中提供了三種方法來完成線程的同步。
  (1)代碼域同步。用Monitor類可以同步靜態/實例化的方法的全部代碼或者部分代碼段。不支持靜態域的同步。在實例化的方法中,this 指針用于同步;而在靜態的方法中,類用于同步。
  (2)手工同步。使用不同的同步類(諸如WaitHandle, Mutex, ReaderWriterLock, Manual ResetEvent,AutoResetEvent和Interlocked 等)創建自己的同步機制。這種同步方式要求你自己手動的為不同的域和方法同步,這種同步方式也可以用于進程間的同步和對共享資源的等待而造成的死鎖解除。
  (3)上下文同步。使用 Synchronization Attribute 為 ContextBoundObject對象創建簡單的自動的同步。這種同步方式僅用于實例化的方法和域的同步。所有在同一個上下文域的對象共享同一個鎖。
  4、結束語
  本文主要對visual Basic.NET的多線程機制進行了討論,介紹了多線程的使用方法。Visual Basic .NET支持加強的、多線程開發模型,它使開發者迅速擁有了開發多線程應用程序的能力。實現需要并發執行的應用程序,尤其對于大部分時間被阻塞的程序段多線程技術是最佳選擇。總之,了解和掌握多線程技術會對我們在解決實際問題時發揮很大的作用。
  參考文獻:
  [1] 蘇葆光,王淵明. VB.NET下多線程技術的實現[J].廣西大學梧州分校學報.2005.7
  [2] 程偉,肖文教. Visual Basic.NET的多線程機制[J].電腦開發與應用.2007.11
  [3] 歐廣宇,鄧桂英. 多線程技術基于VB.NET的實現[J].微機發展.2004.11
  [4] 尹建民 張海卿. Visual Basic.NET入門與進階[ ].北京 清華大學出版社, 2002

學術參考網:http://www.qfkih.com.cn/jsj/js/142142.html

上一篇:基于PSoC 混合信號單片機CY8C29466的模擬量數據采集

下一篇:淺淡計算機實用檢測維修方法及應用

相關標簽:
彩巴巴彩票官网 沃特福德 北京塞车人工一期计划 棋牌游戏赚钱 两人手机麻将技巧 不思议棋牌 英超 鱼丸游戏 奔驰宝马 二人好友斗地主可以吗 双色球预测专家汇总 北京七星彩开奖结果 大乐透胆拖投注中奖 重庆时时计划稳赚计划 2019篮球世界杯赛程表 澳洲赛车计划软件手机版 时时彩大底 重庆时时历史开奖网站