一.同步概念
在生活中,我们的同步往往都是同时起步,协调一致。但是不通的对象对“同步”的理解方式有稍许不同,如设备同步,指的是两个或者多个设备之间规定一个共同的时间参考;数据同步,操作的数据和数据库内容保存一致;文件同步指的是内存中的操作的数据和文件中的数据保持一致。
而在编写代码中,通信中所说的同步与生活中大家说的同步有些差异,“同”表示协同,协助,互相配合。主旨在于协同步调,按预定的先后次序运行。
二.线程同步
线程同步说白就是 多个线程共同协调的 操作一个或者多个共享资源。因为线程是异步执行的【自己执行自己的,你管我执行到那里了】。因此当多个线程操作同一个资源的时候,就会发生混乱和资源竞争,可能引起资源数据被弄紊乱。所以要用线程同步,然想成协调的 有先后次序的 操作这个 资源,而不是抢。【其实是换了一个抢的目标,去抢互斥锁了而不是数据】
三.互斥量(mutex)【互斥锁是一种建议锁,不上锁不解锁的线程依旧可以操作共享资源,出现紊乱】,所以我们要遵循一