VB.NET中多线程程序开发之多线程的特点

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  在写的一则日志中,对 VB.NET 中的多线程程序有了简单的认识,接下来,考试大将会在这里发布一系列关于 VB.NET 中多线程的开发知识。
  多线程程序的特点
  每一个进程中,可以包含多个线程,加入收藏 按照微软官方文档的说明,在 Windows XP 中每个进程可以包含最多 2000 个线程。实际上,线程的数量是要受到内存的限制的,当然,并不是说线程越多越好。假设,现在系统中有两个进程在运行,进程A 仅有一个线程,即主线程,而进程B 有5 个线程,那么当前系统中的线程数,共有 6 个,操作系统会为每个线程分配时间片,这样进程A 获取到的时间片仅为 1/6,而进程B 获取到的时间片为 5/6,所以进程B 的执行就会影响到系统的整体运行,因此在线程数不能太多,要符合程序本身的要求。线程有以下几个特点:
  1. 分配给线程的时间不会得到保证
  2. 线程的激活顺序没有保证
  3. 不能认为发生在不同线程上的事件或操作是同步的,如果要想同步,那么必须进行显式的同步操作。
  下面,我们通过一个例子来理解线程的上述三个特点:
  Imports System.Threading
  Module MyThread
  Sub Main()
  Dim thA As New Thread(New ThreadStart(AddressOf M1))
  Dim thB As New Thread(AddressOf M2)
  thB.Start()
  thA.Start()
  Console.Read()
  End Sub
  Public Sub M1()
  Dim intCount As Integer
  For intCount=1 To 100
  Console.WriteLine("M1 方法正在执行 {0}...",intCount)
  Next
  End Sub
  Public Sub M2()
  Dim intCount As Integer
  For intCount=1 To 100
  Console.WriteLine("M2 方法正在执行 {0}...",intCount)
  Next
  End Sub
  End Module
  程序编译执行的结果如图(每次执行结果都会有变化):
  我们可以看到,M1 方法和 M2 方法执行的顺序是随机的,它不受程序控制,由操作系统的特征决定(时间片的分配方式),有些时候,这个结果并不是我们想要的,那么,如果才能灵活地控制线程的启动与执行呢?在下一节中,我们将会解决这一问题——封装线程。
2009年NCRE考试有新变化
2009年全国计算机等级考试大纲
2009年上半年全国计算机等级考试报名信息汇总

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答