Concurrency 我对读者和作者的解决方案有效吗?

Concurrency 我对读者和作者的解决方案有效吗?,concurrency,Concurrency,全局变量是:具有初始值1的信号量writers、具有初始值0的锁lock、整数count 以下是写入的算法: writers.down() ... writers.up() 以及阅读: lock.acquire() if count++ == 0: writers.down() lock.release() ... lock.acquire() if --count == 0: writers.up() lock.release() 我相信这是正确的。但我该如何严格地证明这一

全局变量是:具有初始值
1
的信号量
writers
、具有初始值
0
的锁
lock
、整数
count

以下是写入的算法:

writers.down()
...
writers.up()
以及阅读:

lock.acquire()
if count++ == 0:
    writers.down()
lock.release()
...
lock.acquire()
if --count == 0:
    writers.up()
lock.release()
我相信这是正确的。但我该如何严格地证明这一点呢