- 476 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:48:04 ]
- ファイルの排他制御のテストプログラムを書いています。
ただ単に1つのカウントファイルを100万回インクリメントするプログラム #!/usr/bin/env python for i in range(1000000) : f = open("count-file", "r+") fcntl.flock(f.fileno(), fcntl.LOCK_EX) cnt = f.readline() cnt = int(cnt) + 1 f.seek(0) f.write("%d\n" % cnt) fcntl.flock(f.fileno(), fcntl.LOCK_UN) f.close() を同時に2つ実行するとcount-fileの値が 2000000 になるはずが、 1984329 という風に途中で欠けてしまいます。但し1つ実行する分には正常に動作します。 排他制御がうまくいってないようなのですがどこがいけないのでしょうか。 flockの部分をlockfにしても変化はありません。 OS Gentoo、python 2.5.1
|

|