实验五:文件和多线程编程
实验目的:
构建线程A1、A2… Ak(k>=3)和线程B的程序(k生产者和单消费者)。A1、A2… Ak从磁盘各自读取一个文本文件,写入到内存中的固定的容器(如Pool)。A1、A2… Ak读取每一行时,都会休眠,然后在随机的时间(10–100 ms)醒来继续尝试执行。程序要求按照A1、A2… Ak的顺序写入Pool。B会观察Pool的状态,如果有新数据,则进行读取,否则B处于等待状态。注意,A1、A2… Ak不能互相干扰。当所有的文件被读取完毕,且B读取完毕时,程序结束。
实质
多生产者——>单消费者
环境
- 操作系统: Windows 10 X64
- IDE: visual studio 2017
- 语言:C#
知识点1-多线程Thread类
- 多线程: 一个程序开始运行时,它就是一个进程,一个进程由多个线程组成,线程是程序中的一个执行流。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行任务
- 线程命名空间: System.Threading
- Thread类:
- 创建线程:Thread workth1=new Thread(start);
- 暂停线程:Thread.Sleep(n); n为毫秒数;使包含该段代码的线程休眠
- 中断线程:Thread.Interrupt();
- 销毁线程:Thread.Abort(); 如果线程已经终止,则不能用Start()再启动