很多初学者在学习线程同步和互斥机制的时候往往不能真正理解他们之间的区别,那就不能再合适的场合使用好这两种机制,其中的区别:
1. 互斥锁主要用来保护临界资源,什么是临界资源,就是有可能多个线程都需要访问的数据地址,也有可能是某一段 代码,执行这段代码有可能会改变多个线程都需要访问的数据。
2. 加入同步机制主要是为了在多线程程序中,如果需要对某个共享资源C进行同步访问,什么是同步访问,就是A线 程访问过程中,B线程不能访问,必须等A线程访问结束后,B线程才能访问,而互斥锁,如果用来对C进行保护, A访问C资源的过程中,B不能访问,A访问结束后,B可以访问,但不一定访问的到,这取决于系统的调度是否给 到B,如果没有,A反而被调度到了,那么A就有可能方法到C。反观同步机制,在这种情况下,如果系统没有调度 到B,A也是没有可能访问C的,必须等B调度到之后,A才可能重新访问。