1. 选择题
(1)关于线程和进程,下列说法哪些是正确的是( D )
A. 线程是操作系统分配处理器时间的基本单位;
B. 进程是操作系统分配处理器时间的基本单位;
C. 一个线程可以属于多个进程;
D. 一个进程可以有多个线程;
(2)多线程C#程序中,类MyClass 定义如下:
class MyClass {
ReaderWriterLock rwl = new ReaderWriterLock();
private int i;
public void Read() {
rwl.AcquireReaderLock(Timeout.Infinite);
Interlocked.Increment(ref i); Thread.Sleep(1000);
rwl.ReleaseReaderLock();
}
public void Write() {
rwl.AcquireWriterLock(Timeout.Infinite);
Interlocked.Decrement(ref i); Thread.Sleep(1000);
rwl.ReleaseWriterLock();
}
}
请问,可以有多少个线程同时调用Read()并将i 的值加1?(  )
A. 0个          B. 1个        C. 多个        D. 没有2. 填空题
(1)使用System.Diagnostics命名空间提供的进程类Process,用户可以查看和管理大部分Windows进程任务,包括启动和_________进程,以及_________进程信息。启动一个已经定位的进程可以使用Process类的___________方法。
(2)使用System.Threading命名空间提供的线程类Thread的___________方法,可以启动多线程,要实现等待该线程结束的任务可以使用Thread的___________方法。
(3)线程同步可以采用以下四种方法:_________、_________、_________、_________。3. 简答题
(1)进程和线程分别怎么理解?
(2)System.Diagnostics命名空间提供的进程类Process有些什么属性?
(3)线程是如何创建的?怎样设置线程优先级?
(4)线程类的主要方法有哪些?
(5)线程同步有几种方法?每种方法之间有什么区别?
(6)BackGroundWorker可实现的功能有哪些?