摘要:
当线程Sleep时系统就退出执行队列一段时间,当睡眠结束时,系统会产生一个时钟中断,从而使线程回到执行队列中恢复线程的执行。 如果父线程先于子线程结束,那么子线程将在父线程结束的同时被迫结束。Thread.Join()方法使父线程等待,直到子线程结束。 谁调用SLEEP谁就是处于睡觉状态。 Cobj.Join(1000)挂起父线程 阅读全文
摘要:
大家可以看到,在上面的例程中,同步是通过等待Monitor.Pulse()来完成的。首先生产者生产了一个值,而同一时刻消费者处于等待状态,直到收到生产者的“脉冲(Pulse)”通知它生产已经完成,此后消费者进入消费状态,而生产者开始等待消费者完成操作后将调用Monitor.Pulese()发出的“脉冲”。它的执行结果很简单: Produc... 阅读全文
摘要:
expression代表你希望跟踪的对象,通常是对象引用。一般地,如果你想保护一个类的实例,你可以使用this;如果你希望保护一个静态变量(如互斥代码段在一个静态方法内部),一般使用类名就可以了。而statement_block就是互斥段的代码,这段代码在一个时刻内只可能被一个线程执行。 下面是一个使用lock关键字的典型例子,我将在注释里向大家说明lock关键字的用法和用途: ... 阅读全文
摘要:
注:本文中出现的代码均在.net Framework RC3环境中运行通过 一.多线程的概念 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中... 阅读全文
摘要:
学习网站可以在http://www.yesky.com/331/215831.shtml 里看到所有文章 a.在C#中要使用线程要引用System.Threading; using System.Threading; b.在C#可以对程进行命名 Thread _thrd = new Thread(new ThreadStart()); _thrd.Name = "thisthrd.name" ... 阅读全文