さまざまなパラメータの組み合わせで実行したいPythonスクリプトがあるとします(私はMacBook Proを使用しています)。たとえば、シェルスクリプトを使用してこれを行う場合は、run.sh
同時に複数回(毎回異なるパラメータの組み合わせを使用して)実行するのが合理的ですか?run.sh
つまり、メモリで実行されたときに異なるパラメータの組み合わせが互いに接触しますか?これはメモリ保護の概念と少し似ていますか?
答え1
Pythonスクリプトが何をしているかによって、多くが異なりますrun.sh
。
非常に簡単な例を見てみましょう。
#!/bin/bash
s=$(( RANDOM%5 ))
echo Sleeping for $s > /tmp/foo
sleep $s
echo You entered $1 >> /tmp/foo
cat /tmp/foo
今私がそうすれば
./run.sh 1 &
./run.sh 2 &
./run.sh 3 &
どんな結果が出るのかわかりません。これは、スクリプトに/tmp/foo
複数回アクセスできないリソース()が1つしかないためです。あるスクリプトが別のスクリプトの結果を上書きします。
逆に、正確でユニークな「一時」リソースを使用するようにスクリプトを作成した場合は、複数回呼び出すことができます。
#!/bin/bash
tmpfile=$(mktemp)
s=$(( RANDOM%5 ))
echo Sleeping for $s > $tmpfile
sleep $s
echo You entered $1 >> $tmpfile
cat $tmpfile
rm $tmpfile
これで、何度でも呼び出すことができ、動作します。
まあ…もちろんメモリとCPUの制限も考慮します!