C#:线程(1):什么是线程?我们为什么要使用线程?

最近在看公司上一个项目的源码,让我感觉非常困惑的是,源码中使用了很多多线程的内容,所以给我的感觉是线程一直跳来跳去的,让我感觉到很困惑。于是我就写了这篇博客,希望能够更好的理解线程有关的内容。

一:什么是线程

线程是和进程经常放在一起比较的两个概念。按照我的理解,线程和进程并没有本质的区别,都是对CPU调用的单位,其区别只是在于对CPU调用的时间尺度的大小。按照我浅显的理解,进程就是编译器编译出来的一个exe可执行文件,exe文件向操作系统申请cpu的计算资源,申请到之后再按照线程的形式把操作系统给的计算资源分配出去。而计算资源的表现形式就是cpu用于计算的时间。

换句话说,进程把操作系统给出的cpu资源进行划分,线程再将进程拥有的资源进一步划分。

二:为什么要使用多线程

按照我在网上看到的一些文章的说法,多线程是为了处理多并发状态,按照我的理解是说程序中存在着多种数据输入方式,每种输入方式对应着不同的处理方法,而其中一些输入方式数据读写和处理更频繁,而另外一些输入方式数据读写和处理很少发生。这种情况下,我就可以使用多线程的方法进行处理,对于读写频繁的数据,我用更多的cpu资源进行处理,对于读写不频繁的数据,我用较少的cpu资源进行处理。

需要注意的一点是,线程的划分和来回切换本身会消耗cpu资源,因此使用线程时要注意。

猜你喜欢

转载自blog.csdn.net/buaazyp/article/details/80988647