本文是针对线程进行展开的,从最基本的几个角度来理解。
1.什么是线程?
操作系统可以进行运算的最小单元,包含在进程之中,是进程的实际运作单位。举一个比较生动的例子,进程就是一个工厂,线程就是工厂里面的工人。线程是独立分配和调度的单元。
2.什么是线程之间的同步?
同步的意思是,一个线程的处理结果是另一个线程的输入,线程之间直接制约着,这种就是同步。还有一种是,两个线程同时访问一个资源,该资源一个时间只能被一个线程访问,只有当一个结束之后,另一个才可以进行。这种也是同步。
3.同步的方式有哪些?
**临界:对应着一个CcriticalSection对象,当线程需要访问保护数据时,调用EnterCriticalSection函数;当对保护数据的操作完成之后,调用LeaveCriticalSection函数释放对临界区对象的拥有权,以使另一个线程可以夺取临界区对象并访问受保护的数据。
**互斥:互斥与临界区很相似,但是使用时相对复杂一些(互斥量为内核对象),不仅可以在同一应用程序的线程间实现同步,还可以在不同的进程间实现同步,从而实现资源的安全共享。
**信号量:信号量的用法和互斥的用法很相似,不同的是它可以同一时刻允许多个线程访问同一个资源。
**事件:手动置位事件和自动置位事件。
有问题,可以联系我:xwyang_zjut@163.com
网友评论