Threading In Python: Ketahui Cara Bekerja Dengan Benang Di Python



Artikel mengenai Threading in Python ini akan memberitahu anda apa itu Threads, jenisnya, bagaimana memulakannya dan menggunakannya dengan cara yang terbaik

Hari ini, adalah salah satu bahasa pengaturcaraan yang paling disukai di seluruh dunia. Sejak didirikan pada tahun 1990-an, ia telah mengumpulkan banyak pengikut dan peminat serta pengkod yang bekerja setiap hari untuk menjadikan bahasa pengaturcaraan ini lebih baik. Di antara banyak ciri yang terdapat dalam ekosistem Python, yang paling menonjol ialah Threading. Oleh itu, dalam artikel ini, kita akan membincangkan semua mengenai Threading in Python, bagaimana anda boleh menggunakannya bersama dengan kelebihan dan kekurangannya.

Petunjuk berikut akan dibahas dalam artikel ini,





Mari kita mulakan

Threading Di Python

Apa itu Benang di Python?

Suatu utas dalam Python hanya dapat didefinisikan sebagai aliran pelaksanaan yang terpisah. Ini bermaksud bahawa dalam program anda, dua proses yang berbeza akan dilaksanakan dalam masa yang sama. Satu aspek menarik dalam Python adalah kenyataan bahawa, selepas versi 3 banyak utas di Python tidak dilaksanakan pada masa yang sama, tetapi hanya kelihatan seperti itu.



Walaupun sangat mengagumkan apabila menjalankan dua proses yang berbeza pada masa yang sama, seseorang perlu memahami bahawa versi semasa Python 3 dan ke atas dikodkan sedemikian rupa, hanya proses yang dapat dijalankan pada waktu tertentu. Sekiranya anda memerlukan dua atau lebih proses bersama-sama pada masa yang sama di CPython, anda perlu memasukkan beberapa kod anda dalam bahasa lain juga, seperti C, C ++ dan Java, dan kemudian jalankannya melalui multi-threading di Python.

Salah satu kelebihan threading yang sangat terkenal di Python adalah kemampuannya untuk memberikan keuntungan dalam kejelasan reka bentuk.

Sebelum itu kami mempunyai beberapa idea mengenai Threading di Python, mari kita fahami bagaimana memulakan thread,



Memulakan Thread di Python

Setelah anda terbiasa dengan definisi utas dalam Python, mari kita lihat contoh bagaimana anda boleh membuat utas anda sendiri di Python. Untuk membuat utas di Python, pertama anda perlu mengimport perpustakaan utas dan kemudian memerintahkannya untuk memulakan () seperti yang ditunjukkan dalam contoh di bawah:

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finishing', name) jika __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: sebelum membuat thread') x = threading. Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: sebelum menjalankan thread') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: tunggu utas selesai ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: semua selesai ')

Pengeluaran

Keluaran - Threading Di Python - Edureka

Semasa menjalankan utas di Python, anda meneruskannya sebagai fungsi yang mengandungi senarai argumen yang perlu dilaksanakan. Dalam contoh yang dikongsi di atas, anda mengarahkan Python untuk menjalankan thread, thread_function () dan meneruskannya menjadi 1 sebagai argumen.

Semasa anda menjalankan program di atas, output akan kelihatan seperti ini.

Sebilangan kecil artikel ini mengenai 'Threading in Python' mari kita lihat apa itu benang daemon,

Apakah Benang Daemon?

Dalam terminologi teknikal, daemon dapat didefinisikan sebagai proses yang terutama berjalan di latar belakang. Walau bagaimanapun, di Python, benang daemon mempunyai makna yang sangat spesifik. Di Python, benang daemon akan ditutup pada saat program keluar, walaupun dalam bahasa pengaturcaraan lain, ia akan terus berjalan di latar belakang. Sekiranya dalam program tertentu, utas tidak diprogramkan sebagai benang daemon, maka jurubahasa akan menunggunya untuk menyelesaikan operasinya dan kemudian mematikan jurubahasa.

transformasi aktif dan pasif dalam maklumat

Untuk memahami konsep ini dengan lebih baik perhatikan contoh di atas. Pada baris terakhir kedua, program menunggu beberapa saat setelah selesai menyelesaikan semua tugasnya. Ini kerana menunggu benang bukan daemon menyelesaikan operasinya dan kemudian keluar dari antara muka. Setelah utas selesai beroperasi, program hanya akan keluar.

Sekarang mari kita ubah program di atas dan lihat apa yang berlaku, jika kita memasukkan benang daemon dalam kod.

Kod baru: x = threading. Thread (target = thread_function, args = (1,), daemon = True)

Apabila anda menjalankan program di atas dengan pengubahsuaian yang dilakukan, ia akan kelihatan seperti ini.

Perbezaan antara kedua output ini adalah bahawa baris terakhir tidak ada dari yang terbaru. Fungsi thread_) () tidak berpeluang untuk diselesaikan, kerana kami memasukkan utas daemon dan sebaik sahaja sampai di penghujungnya, ia keluar dari program.

Menyertai Thread

Sekarang setelah anda mengetahui tentang konsep membuat utas di Python, bersama dengan konsep benang daemonik, mari kita ketahui bagaimana anda boleh bergabung dalam utas di Python.

Dengan menggunakan fungsi join () di Python anda dapat bergabung dengan dua utas yang berbeza, dan juga memerintahkan satu untuk menunggu yang lain hingga selesai pelaksanaannya. Ciri ini akan sangat berguna ketika anda membuat pengekodan aplikasi besar dan anda memerlukan semua proses dijalankan dalam urutan tertentu

Bahagian terakhir artikel ini mengenai ‘Threading in Python’ akan menunjukkan kepada anda Multiple Threads yang berfungsi,

Bekerja dengan Banyak Benang

Dalam contoh di atas, kami telah membincangkan bagaimana anda boleh bekerja dengan dua utas sekaligus. Tetapi bagaimana jika dalam keadaan tertentu, anda perlu bekerja dengan banyak utas pada masa yang sama. Untuk lebih memahami keadaan, lihat contoh di bawah.

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finishing', name) jika __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') utas = senarai ( ) untuk indeks dalam julat (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: create and start thread% d.', index) x = threading. Thread (target = thread_function, args = (index,)) threads.append (x x.start () untuk indeks, utas dalam bilangan (utas): logging.info ('Main & ampampampnbsp & ampampampnbsp: sebelum bergabung dengan thread% d.', index) thread.join () logging.info ('Main & ampampampnbsp & ampampampnbsp: thread% d selesai ', indeks)

Pengeluaran

Dalam program di atas, kami telah mengikuti prosedur yang sama untuk mengimport perpustakaan utas, memulakan utas, membuat beberapa utas dan kemudian menggunakan fungsi bergabung () untuk menggabungkan semua bersama dan dilaksanakan dalam urutan tertentu.

Apabila anda menjalankan program di atas, hasilnya akan kelihatan seperti ini.

Kesimpulannya

Ini adalah salah satu ciri Python yang paling berguna. Dengan menggunakannya dengan cara yang betul, anda dapat menjadikan keseluruhan proses pengkodan anda lebih mudah dan cekap. Dari artikel di atas, kami berharap anda telah mempelajari asas-asas threading dan akan terus menggunakannya dalam pengaturcaraan harian anda.

Oleh itu, ini saya harap anda menyukai artikel ini.

Untuk mendapatkan pengetahuan mendalam tentang Python bersama dengan pelbagai aplikasinya, anda boleh untuk latihan dalam talian secara langsung dengan sokongan 24/7 dan akses seumur hidup.

Ada soalan untuk kami? Sebutkannya di bahagian komen artikel ini dan kami akan menghubungi anda.