VB.NET并行与分布式编程
收藏

VB.NET并行与分布式编程

分享到: Sina Tec

最近更新文章

VB.NET并行与分布式编程(6)-线程与内核同步[4]

我们下面通过WaitHandle.WaitOne 方法和EventWaitHandle.Set 方法来实现 EventWaitHandle.Set 方法 将事件状态设置为终止状态,允许一个或多个等待线程继续。   WaitHandle.WaitOne方法 阻止当前线程,直到当前 WaitHandle收到信号为止。     Imports System Impor ...
 
deepfuture 评论(0) 有1844人浏览 2012-05-09 16:10

VB.NET并行与分布式编程(6)-线程与内核同步[3]

  一、 WaitHandle 类封装等待对共享资源的独占访问的操作系统特定的对象 1)WaitHandle 类型公开以下成员。 构造函数--------------------------------------------------------------------------------    名称 说明     WaitHandle  初始化 WaitHandle 类的新实例。  ...
 
deepfuture 评论(0) 有1394人浏览 2012-05-09 15:28

VB.NET并行与分布式编程(6)-线程与内核同步[2]

那么我们通过关键区域可以解决这个问题吗 Thread.BeginCriticalRegion 通知宿主执行将要进入一个代码区域,在该代码区域内线程中止或未经处理的异常的影响可能会危害应用程序域中的其他任务。公共语言运行时 (CLR) 的宿主(如 Microsoft SQL Server 2005)可以对关键和非关键代码区域建立不同的失败策略。 关键区域是指线程中止或未经处理的异常的影响可能不限于当 ...
 
deepfuture 评论(0) 有1352人浏览 2012-05-08 17:21

VB.NET并行与分布式编程(6)-线程与内核同步[1]

我们接着前面的例子讲述,这个例子的功能是3个线程共同完成对一个数的连续减法运算,在前面的例子,我们在每个线程做完减法运算后都加入了thread.sleep,以使线程能将执行机会给其它线程,同时也使得在这个例子一般不会发生线程同步问题,我们去掉sleep,可以发现由于没有解决同步问题,有线程读到了脏数据。 代码为:   Imports System Imports System.Threadi ...
 
deepfuture 评论(0) 有1744人浏览 2012-05-08 17:10

VB.NET并行与分布式编程(5)-线程状态与调整[4]

 2)通过System.Diagnostics.ProcessThread来设置优先级,它能设置比第1种方法更多的优先级 Idle  指定空闲优先级。 它是所有线程的可能的最低优先级值,与关联的 ProcessPriorityClass 的值无关。   Lowest  指定最低优先级。 这比关联的 ProcessPriorityClass 的普通优先级低两级。   BelowNormal  指定的 ...
 
deepfuture 评论(0) 有1220人浏览 2012-05-03 17:48

VB.NET并行与分布式编程(5)-线程状态与调整[3]

4、线程优先级   Imports System Imports System.Threading Imports System.Diagnostics Imports System.Diagnostics.ThreadState Module Module1 Sub Main() Dim mythread1 As Th ...
 
deepfuture 评论(0) 有1441人浏览 2012-05-03 09:20

VB.NET并行与分布式编程(5)-线程状态与调整[2]

Imports System Imports System.Threading Imports System.Diagnostics Imports System.Diagnostics.ThreadState Module Module1 Sub Main() Dim mythread1 As Thread ...
 
deepfuture 评论(0) 有1343人浏览 2012-05-02 19:52

VB.NET并行与分布式编程(5)-线程状态与调整[1]

一、线程状态涉及的CLR类 1)Process 类 提供对本地和远程进程的访问并使您能够启动和停止本地系统进程   GetCurrentProcess  获取新的 Process 组件并将 ...
 
deepfuture 评论(0) 有1812人浏览 2012-05-02 16:48

VB.NET并行与分布式编程(4)-线程栈[4]

 4、栈溢出 1)溢出情况 a)线程试图提交比保留大小更多的栈内存页 b)没有物理内存也没有虚拟内存可供提交更多的守护页 2、栈溢出后还想继续运行程序,必须重置守护页,可以使用CRT的_resetstkoflw。 不过对于大的数据,可以考虑将某些数据移到堆中。堆栈是有限的,甚至在用户模式下也是如此,如果无法提交堆栈页,会导致堆栈溢出异常。_resetstkoflw 函数可以将系统从堆栈溢出的情况恢复 ...
 
deepfuture 评论(0) 有1554人浏览 2012-04-30 13:40

VB.NET并行与分布式编程(4)-线程栈[3]

3、运用stacktrace类实现线程栈回溯跟踪  代码如下: Imports System Imports System.Threading Imports System.Diagnostics.StackTrace Module Module1 Sub Main() Dim main_x As Integer main_x ...
 
deepfuture 评论(0) 有1472人浏览 2012-04-30 13:26

VB.NET并行与分布式编程(4)-线程栈[2]

三、栈内存 1、每个WINDOWS都有一个栈基址和栈限址,二者合在一起表示栈的有效内存范围。栈限址不是固定的,程序需要更多内存空间里,栈限址没有超过保留的栈内存范围,则可以要求更多的内存页 2、在栈限址外是栈的守护页,当访问到守护页时,会引发STATUS_GUARD_PAGE_VIOLATION异常,当异常发生后,操作系统捕捉后,提交下一页内存,然后将其做为新的守护页,这相当于分配了一个新的页给 ...
 
deepfuture 评论(0) 有1916人浏览 2012-04-30 11:36

VB.NET并行与分布式编程(4)-线程栈[1]

1、用调试器调试线程  1)栈调用 以下面代码为例 Imports System.Threading Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim main_x As ...
 
deepfuture 评论(0) 有1662人浏览 2012-04-29 15:39

VB.NET并行与分布式编程(3)-线程局部存储TLS[3]

为了查看效果,我特意用随机数来代替固定的sleep时间,这样更有说明力。上面程序的运行结果如下:      五、TLS小结 1)TLS基础 可以使用托管线程本地存储区 (TLS) 存储某一线程和应用程序域所独有的数据。 .NET Framework 提供了两种使用托管 TLS 的方式:线程相关的静态字段和数据槽。 线程相关的静态字段提供的性能比数据槽的性能要好得多,而且它还启用了编译时类 ...
deepfuture 评论(0) 有1522人浏览 2012-04-27 19:27

VB.NET并行与分布式编程(3)-线程局部存储TLS[2]

接上节,我们可以使用下面语句创建一个线程本地变量,利用静态TLS功能 Dim betterCounter As ThreadLocal(Of Integer) = New ThreadLocal(Of Integer)(Function() 1)betterCounter的值初始化为1。在本程序中,jg被初始化为50,并定义成线程本地变量           Dim jg As ThreadL ...
 
deepfuture 评论(0) 有1500人浏览 2012-04-27 16:20

VB.NET并行与分布式编程(3)-线程局部存储TLS[1]

一、TLS种类 1)动态TLS 2)静态TLS 静态TLS的速度比动态TLS快,在编译期就决定,需要定义一个静态域来表示TLS数据,编译器有足够的信息来在编译期间内发射代码,动态TLS需要通过一个或多个函数调用来获得地址。 二、静态TLS 我们可以在线程函数中使用static声明一个静态的变量,这个变量会被所有使用这个函数的线程共享。比如,我们写一个简单的计算:  200-1-2-... ...
 
deepfuture 评论(0) 有2100人浏览 2012-04-27 16:14

VB.NET并行与分布式编程(2)-线程终止

 Imports System Imports System.Threading Module Module1 Sub Main() Dim mythread1 As Thread Dim mythread2 As Thread Dim mythread3 As Thread '创建线程对象 ...
 
deepfuture 评论(0) 有2997人浏览 2012-04-27 10:51

VB.NET并行与分布式编程(1)-创建与运行线程

Imports System Imports System.Threading Module Module1 Sub Main() Dim mythread1 As Thread Dim mythread2 As Thread Dim mythread3 As Thread '创建线程对象 ...
 
deepfuture 评论(0) 有2680人浏览 2012-04-26 17:56

并发带来的冲突

1、读/写冲突 2、写/写冲突 3、写/读冲突 4、读/读冲突 解决方法如下: 1、原子性 2、串行化 3、线性化 4、独立性 (1)进程间独立性 (2)进程内独立性 (3)事先约定的独立性    
 
deepfuture 评论(0) 有1683人浏览 2012-04-23 21:50
  • 专栏创建者:deepfuture
  • 创建时间:2012-04-27 22:39:01
  • 专栏文章数:38篇
  • 专栏被浏览:68593 次

本专栏热门文章

最新评论

Global site tag (gtag.js) - Google Analytics