https://github.com/heiwa4126/python_flock_ex1
Python 3で複数プロセスでflockを使って排他制御を行うサンプルコード
https://github.com/heiwa4126/python_flock_ex1
example flock python
Last synced: 4 months ago
JSON representation
Python 3で複数プロセスでflockを使って排他制御を行うサンプルコード
- Host: GitHub
- URL: https://github.com/heiwa4126/python_flock_ex1
- Owner: heiwa4126
- Created: 2021-08-17T02:37:08.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-17T02:52:56.000Z (over 4 years ago)
- Last Synced: 2025-02-23T07:16:33.099Z (12 months ago)
- Topics: example, flock, python
- Language: Python
- Homepage:
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# python_flock_ex1
Python 3で複数プロセスでflockを使って排他制御を行うサンプルコード。
flock()を使っているのでUNIXのみ動く。詳しくは`man 2 flock`参照。
# 動かし方
- init_cnt.py - カウンターを0に初期化
- inc_cnt.py - カウンターを10000増やす(排他制御なし)。並行で複数動かすと死ぬ。
- flock_inc_cnt.py - カウンターを10000増やす。並行で動かしても死なない。
```sh
# 期待通りに動く
./init_cnt.py ; ./inc_cnt.py
# 死ぬ。または30000にならない
./init_cnt.py ; ./inc_cnt.py & ./inc_cnt.py & ./inc_cnt.py
# 30000になる
./init_cnt.py ; ./flock_inc_cnt.py & ./flock_inc_cnt.py & ./flock_inc_cnt.py
```
# そのほかメモ
COUNTER_FILEと別にLOCK_FILEが必要なのは、
COUNTER_FILEをオープンした時点でバッファされてしまうからだと思う。
あと、例外の補足をしてないのがよろしくないので
(ロックファイルが開放されない)
あとで追加する。 -> 追加しました