(原创)理解多线程
在Windows平台开发上位机监控软件,就要熟悉平台的软硬件特点。
硬件:CPU是多核的,
软件:所有软件都是在windows操作系统的管理下运行。要看到小和大的关系。
因为CPU是多核的,所以在编写C#软件时可以进行多线程的编程,利用多核来并行执行程序。
多线程编程时,你写的程序的每条线程都对同一个变量(这种变量是公共变量,是公开的)进行读写,也就是多对一的关系,就涉及新的问题:线程同步和线程异步。
线程同步:
所谓同步: 是指在某一时刻只有一个线程可以访问变量 。多个线程同时访问同一资源,必须等一个线程访问结束,才能访问资源,比较浪费时间,效率低 .当已经有1个线程在进行变量访问的过程时,其他线程也想访问这个变量,但是不能访问,只能等待,等到进行中的线程结束才有机会访问。
线程安全:同步了线程就会安全。有了同步就不担心出错。线程如果不涉及到操作公共变量的时候就不要同步,否则就需要同步才能保证线程安全。
同步的好处与弊端
好处:解决了线程的安全问题。
弊端:每次都有判断锁,降低了效率。
但是在安全与效率之间,首先考虑的是安全。
线程异步:
访问资源时在空闲等待时可以同时访问其他资源,实现多线程机制。