最初に調べたところ、私の質問に対する答えが見つかりませんでした。私はPythonで複数の関数を同時に実行しようとしています。Python:どうすればPython関数を並列に実行できますか?
files.py
import common #common is a util class that handles all the IO stuff
dir1 = 'C:\folder1'
dir2 = 'C:\folder2'
filename = 'test.txt'
addFiles = [25, 5, 15, 35, 45, 25, 5, 15, 35, 45]
def func1():
c = common.Common()
for i in range(len(addFiles)):
c.createFiles(addFiles[i], filename, dir1)
c.getFiles(dir1)
time.sleep(10)
c.removeFiles(addFiles[i], dir1)
c.getFiles(dir1)
def func2():
c = common.Common()
for i in range(len(addFiles)):
c.createFiles(addFiles[i], filename, dir2)
c.getFiles(dir2)
time.sleep(10)
c.removeFiles(addFiles[i], dir2)
c.getFiles(dir2)
私は関数func1とfunc2のを呼び出して、それらを同時に実行したい:
私はこのような何かを持っています。関数は、相互に、または同じオブジェクト上で相互作用しません。今は、func1が終了するまでfunc1が終了するのを待たなければなりません。私は以下のような何かを行う方法:
process.py
from files import func1, func2
runBothFunc(func1(), func2())
は、私は同じ時間にかなり近い両方のディレクトリを作成することができるようにしたいので、すべての私は多くのファイルが作成されているか数えています分。ディレクトリがなければ、それは私のタイミングを捨てるでしょう。
質問の更新 – lmcadory
これを再設計することができます。毎分ファイル/フォルダの数を数えている場合、競合状態が発生しています。各関数がカウンタを更新するのはどうですか?または、ロックファイルを使用して、両方の関数の実行が完了するまで定期的なプロセスでカウントが更新されないようにしてください。 –