1
私は、shutil.make_archiveを使って複数のフォルダをpythonのスレッドを使って圧縮しようとしています。小さなフォルダが完全にジップし、同時に他のスレッドもジップを停止することがわかります。shutil.make_archiveはスレッドセーフですか?
したがって、shutil.make_archiveスレッドセーフですか?
私は、shutil.make_archiveを使って複数のフォルダをpythonのスレッドを使って圧縮しようとしています。小さなフォルダが完全にジップし、同時に他のスレッドもジップを停止することがわかります。shutil.make_archiveはスレッドセーフですか?
したがって、shutil.make_archiveスレッドセーフですか?
shutil.make_archive()
は、ではなく、スレッドセーフです。
これは、プロセスのグローバルな現在の作業ディレクトリを変更するためです。スレッドには独自の作業ディレクトリがありません。 Pythonの2.7に関連するコードを参照してください:
save_cwd = os.getcwd()
if root_dir is not None:
if logger is not None:
logger.debug("changing into '%s'", root_dir)
base_name = os.path.abspath(base_name)
if not dry_run:
os.chdir(root_dir)
if base_dir is None:
base_dir = os.curdir
...
機能は、その実行の開始時に現在の作業ディレクトリを保存し、返す前にそれを復元しますが、これはスレッド安全のために十分ではありません。