1

サーバーには、いくつかの入力を受け取り、いくつかの出力をファイルに書き込む C++ プログラムがあります。ファイルが生成された後、ファイルへの対応するリンクをメールで送信したいと考えています。

C++ 自体から SMTP を処理するのは避けたいので、C++ でシステム コールを使用して Python スクリプトを実行し、電子メールのプロセスを処理することを考えました。

C++ の場合:

system("python emailer.py foo@bar.com filetodownload.txt");

Python の場合:

import sys
email = sys.argv[1]
file = sys.argv[2]
// handle SMTP emailing...

この単純なアプローチについて質問があります。C++ プログラムはマルチスレッドであるため、Python スクリプトを呼び出して電子メールを送信するスレッドが複数存在する場合があります。これは懸念事項ですか?一度に 1 つのスレッドのみが python スクリプトを呼び出すことを許可する、C++ プログラムにミューテックス変数を使用する (これも単純な) 解決策はありますか? また、このタスクを達成するためのより良い方法があれば教えてください。

4

1 に答える 1

3

あなたが示したことから、マルチスレッド同期を必要とする共有リソースは見当たりません。Python への各システム コールは、個別のプロセスになります。

于 2013-01-23T23:13:27.043 に答える