python互斥锁、加锁、同步机制、异步通信知识总结
某个线程要共享数据时,先将其锁定,此时资源的状态为“锁定”,其他线程不能更改;直到该线程释放资源,将资源的状态变成“非锁定”,其他的线程才能再次锁定该资源。互斥锁保证了每次只有一个线程进入写入操作,从而保证了多线程情况下数据的正确性。采用f_flag的方法效率低mutex=threading.Lock()mutex.acquire#里面可以加blocking或者不加,不加就会一直等待(堵塞)mutex.release()只要一上锁,由多任务变为单任务,相当于只有一个线程在运行。下面的代码相对上面加锁的时间变短了只有必须加锁的地方才加锁同步:按照预定的先后顺序执行一个运行完后,释放下一个,下一个锁定后运行,再释放下一个,下一个锁定后,运行后释放下一个..... 释放第一个异步:
用户评论