多线程技术实现并发控制以及在项目中的应用
先介绍下原理 多线程技术vs线程同步
1多线程技术
多线程可以实现并行处理,避免了某项任务长时间占用CPU的时间。大部分计算机都是单CPU处理器,为了运行所有这些线程,操作系统以轮换方式为这些线程提供时间片,给人一种假象,看起来像是同时运行多个线程,进程内的线程共享同一虚拟地址,相关系统资源和全局变量。
但是如果两个非常活跃的线程抢占系统CPU时间,线程切换的时候就会消耗掉很多CPU资源,降低系统的性能。这一点在多线程编程时候要格外注意。
2 MFC 多线程及线程同步
一般很少有多个线程在生命周期内进行完全独立的操作,大多数是一些线程在处理一些操作的时候,另一些线程等待这些线程操作之后的操作结果进行分析和了解。
可是如果其他一些线程在线程未操作完成之前就访问了全局变量,就会不知道读取的全局变量的值是修改之前还是修改后的,所以为了保证其他线程能访问到线程处理完的结果采取的措施叫线程同步。
在MFC编程中,涉及到两种形式的线程,分别为用户界面线程以及工作者线程。
前者主要是处理与界面相关的操作,并且实现消息与事件响应,后者主要是进行后台任务的处理,该处理操作与用户无关,两者可同时进行且互不干涉。
工作者线程
通常用一个函数代表一个线程来实现工作者线程。
1 MFC通过U