Mengapa multi-threading tidak membuat kode Python saya lebih cepat? Bagaimana saya bisa memperbaikinya?

Python membatasi akses ke interpreter dengan Global Interpreter Lock, yang disebut sebagai GIL, untuk persyaratan keamanan thread internal. Sayangnya, keputusan desain ini membatasi hanya memungkinkan satu thread untuk menafsirkan kode Python pada satu waktu, bahkan pada mesin dengan kemampuan untuk menjalankan beberapa thread bersama-sama. Jika Anda ingin menjalankan kode Python pada satu set data, dan data dapat dipecah menjadi segmen independen (proses yang dikenal sebagai partisi data), Anda mungkin ingin melihat ke dalam multiprocessing library di Python. Sebagai contoh, pertimbangkan fungsi foo yang satu argumen, arg1, dan katakan Anda ingin menjalankan fungsi foo pada sejumlah nilai, katakanlah, val1, val2, dan val3. defarg foo: # melakukan sesuatu jika __name__ =='main__val': # melakukan sesuatu jika __name__ =='main__val': # melakukan sesuatu jika __name__ =='main__val': # melakukan sesuatu jika __name__ =='main__val': # melakukan sesuatu jika __name__ =='main__val': # melakukan sesuatu jika __name__ =='main__val': # melakukan sesuatu jika __name__ =='main__val': # melakukan sesuatu jika Anda tahu, Anda juga dapat menggunakan multiprocessing library untuk menjalankan beberapa proses bersama-sama.