পাইথনে একই সাথে দুটি লুপ সমান্তরালে (concurrently) চালাতে multiprocessing লাইব্রেরি ব্যবহার করতে হয়। পাইথনের GIL (Global Interpreter Lock) কারণে থ্রেডিং-এ সच्चা সমান্তরালীসাধারণত সম্ভব নয়, তাই মাল্টিপ্রসেসিং ব্যবহার করা হয়।
উদাহরণ
from multiprocessing import Process
def loop_a():
for i in range(5):
print("a")
def loop_b():
for i in range(5):
print("b")
if __name__ == "__main__":
Process(target=loop_a).start()
Process(target=loop_b).start()
আউটপুট (একটি সম্ভাব্য অর্ডার)
a b a b a b a b a b
মहত্বপূর্ণ নোট:
- আউটপুটের ক্রম অনিশ্চিত (non-deterministic) কারণ কোন প্রসেস আগে রান হবে তা জানা যায় না।
if __name__ == "__main__":গার্ড উইন্ডোজে আবশ্যক।- I/O-বাউন্ড কাজের জন্য
threadingবাasyncioও ব্যবহার করা যায়।