এটি অনুরূপ প্রসঙ্গে জিজ্ঞাসা করা হতে পারে তবে আমি প্রায় 20 মিনিটের সন্ধানের পরে কোনও উত্তর খুঁজে পাইনি, তাই আমি জিজ্ঞাসা করব।
আমি পাইথন স্ক্রিপ্ট লিখেছি (বলতে দিন: স্ক্রিপ্টএ.পি) এবং স্ক্রিপ্ট (স্ক্রিপ্টবি.পি বলতে দিন)
স্ক্রিপ্টবিতে আমি বিভিন্ন আর্গুমেন্টের সাথে একাধিকবার স্ক্রিপ্টএ কল করতে চাই, প্রতিটি সময় চালাতে প্রায় এক ঘন্টা সময় নেয়, (এটির বিশাল স্ক্রিপ্টটি প্রচুর পরিমাণে কাজ করে .. এটি নিয়ে চিন্তা করবেন না) এবং আমি এটি চালাতে সক্ষম হতে চাই স্ক্রিপ্টএ সমস্ত একই সাথে বিভিন্ন যুক্তি সহ, তবে চালিয়ে যাওয়ার আগে তাদের সমস্তগুলি সম্পন্ন হওয়া পর্যন্ত আমার অপেক্ষা করা উচিত; আমার কোড:
import subprocess
#setup
do_setup()
#run scriptA
subprocess.call(scriptA + argumentsA)
subprocess.call(scriptA + argumentsB)
subprocess.call(scriptA + argumentsC)
#finish
do_finish()
আমি subprocess.call()
একই সাথে সমস্ত চালাতে চাই এবং তারপরে সেগুলি সম্পন্ন হওয়া পর্যন্ত অপেক্ষা করুন, আমি এটি কীভাবে করব?
আমি এখানে উদাহরণের মতো থ্রেডিং ব্যবহার করার চেষ্টা করেছি :
from threading import Thread
import subprocess
def call_script(args)
subprocess.call(args)
#run scriptA
t1 = Thread(target=call_script, args=(scriptA + argumentsA))
t2 = Thread(target=call_script, args=(scriptA + argumentsB))
t3 = Thread(target=call_script, args=(scriptA + argumentsC))
t1.start()
t2.start()
t3.start()
তবে আমি এটি সঠিক বলে মনে করি না।
আমি কীভাবে জানতে পারি যে আমার কাছে যাওয়ার আগে তারা সব শেষ করে ফেলেছে do_finish()
?