概念:
进程是操作系统对一个正在运行的程序的一种抽象(处理器,主存,I/O设备),进程是并发的
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。线程是并行的
线程的特性:
1.线程的执行顺序由操作系统来决定
2.状态:
1.Unstarted 就是Thread实例化了,但是又没有调用Start()
2.Running 调用了Start()后就是Running状态
3.WaitSleepJoin 调用Seeep()或其他
4.Stopped 停止
5.AbortRequested
6.Aborted
常用的同步方法
1.lock
2.Monitor
object loc = new object();
Monitor.Enter(loc);
try
{
}
finally
{
Monitor.Exit(loc);
}
3.Mutex
任务的取消
1.创建CancellationTokenSource对象
2.得到上面对象的Token对象
3.调用上面对象的ThrowIfCancellactionRequested();记得要捕获
4.调用Token.Cancel();
Parallel:此类可以让你以并行的模式来遍历一个集合
常用方法
1.For
2.ForEach
3.Invoke
PLinq编程
使用:
var data = Enumerable.Range(0, 100000000);
var result = (from b in data.AsParallel() where b % 2 == 0 select b).Count();
Console.WriteLine(result);
如果要取消呢?
和上面的一样,调用Token.Cancel()即可