如何处理脏读,请求解决实例?

解决方案 »

  1.   

    加锁
    举例:
    a线程修改内存数据,修改到一半,b线程读了数据,a撤销修改了,那么造成b读的数据是脏的,无效的。
    因此解决办法,a线程先锁定内存数据块,等完全修改好了再放开锁,这样在A改的过程中b都不了。
    windows平台的加锁技术基本就是一些线程同步的技术,比如临界区、事件、互斥等等,都是采用信号通知的模式。一个线程放一个信号表示这块东西我用了。其他线程要用这个东西就必须等待,等我用完了再把信号撤掉,其他线程可以用了。
      

  2.   

    是的一楼说得对~基本就是你在操作a的时候就把要用到的lock然后用完再放了