【基本知识】线程之间的同步

本文是针对线程进行展开的,从最基本的几个角度来理解。

1.什么是线程?

操作系统可以进行运算的最小单元,包含在进程之中,是进程的实际运作单位。举一个比较生动的例子,进程就是一个工厂,线程就是工厂里面的工人。线程是独立分配和调度的单元。

2.什么是线程之间的同步?

同步的意思是,一个线程的处理结果是另一个线程的输入,线程之间直接制约着,这种就是同步。还有一种是,两个线程同时访问一个资源,该资源一个时间只能被一个线程访问,只有当一个结束之后,另一个才可以进行。这种也是同步。

3.同步的方式有哪些?

**临界:对应着一个CcriticalSection对象,当线程需要访问保护数据时,调用EnterCriticalSection函数;当对保护数据的操作完成之后,调用LeaveCriticalSection函数释放对临界区对象的拥有权,以使另一个线程可以夺取临界区对象并访问受保护的数据。

**互斥:互斥与临界区很相似,但是使用时相对复杂一些(互斥量为内核对象),不仅可以在同一应用程序的线程间实现同步,还可以在不同的进程间实现同步,从而实现资源的安全共享。

**信号量:信号量的用法和互斥的用法很相似,不同的是它可以同一时刻允许多个线程访问同一个资源。

**事件:手动置位事件和自动置位事件。

有问题,可以联系我:xwyang_zjut@163.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容