Apa itu Mutithreading dengan Python dan Bagaimana Mencapainya?



Pelajari apa itu multitasking dengan python. Ini juga menjelaskan multithreading cara membuat utas tanpa membuat kelas, dengan memperluas kelas utas dan tanpa memperluasnya.

Waktu adalah faktor terpenting dalam hidup. Karena pentingnya, dunia pemrograman menyediakan berbagai trik dan teknik yang secara signifikan membantu Anda mengurangi konsumsi waktu, sehingga meningkatkan performa. Salah satu pendekatan tersebut adalah Multithreading dengan Python, yang merupakan salah satu konsep terpenting yang dibahas di bawah .

apa itu tag br di html

Berikut adalah ringkasan singkat dari semua jurusan yang tercakup dalam artikel ini:





apa yang multitasking dengan Python?
Apa itu utas?
Apa itu multithreading di python?
Kapan menggunakan multithreading dengan Python?
Bagaimana cara mencapai Multithreading dengan Python?
Bagaimana cara membuat utas dengan Python?

Keuntungan menggunakan multithreading dengan Python



Untuk memulainya, pertama-tama mari kita coba memahami multitasking sebelum kita mulai mempelajari Multithreading dengan Python.

Apa itu Multitasking dengan Python?

Multitasking, secara umum, adalah kemampuan melakukan banyak tugas secara bersamaan. Dalam istilah teknis, multitasking mengacu pada kemampuan sistem operasi untuk melakukan tugas yang berbeda pada waktu yang bersamaan. Contohnya , Anda sedang mendownload sesuatu di PC Anda serta mendengarkan lagu dan secara bersamaan bermain game, dll. Semua tugas ini dilakukan oleh OS yang sama dan secara sinkron. Ini tidak lain adalah multitasking yang tidak hanya membantu Anda menghemat waktu tetapi juga meningkatkan produktivitas.

Ada dua jenis multitasking di OS:



  • Berbasis proses
  • Berbasis benang

Pada artikel ini, Anda akan belajar tentang Berbasis benang multitasking atau Multithreading .

Apa itu utas?

utas-multithreading di python-edurekaUtas pada dasarnya adalah independen aliran eksekusi. Proses tunggal dapat terdiri dari banyak utas. Setiap utas dalam program melakukan tugas tertentu. Sebagai contoh, saat Anda memainkan game, katakanlah FIFA di PC Anda, game secara keseluruhan adalah satu proses , tetapi terdiri dari beberapa utas yang bertanggung jawab untuk memutar musik, mengambil masukan dari pengguna, menjalankan lawan secara serempak, dll. Semua ini adalah utas terpisah yang bertanggung jawab untuk menjalankan tugas yang berbeda ini dalam program yang sama.

Setiap proses memiliki satu utas yang selalu berjalan. Ini adalah utas utama. Utas utama ini sebenarnya membuat objek utas anak. Utas anak juga dimulai oleh utas utama. Saya akan menunjukkan kepada Anda lebih jauh di artikel ini cara memeriksa utas yang sedang berjalan.

Jadi dengan ini, saya harap Anda telah memahami dengan jelas apa itu utas. Selanjutnya, mari kita lihat apa itu Multithreading dengan Python.

Kapan menggunakan Multithreading dengan Python?

Multithreading sangat berguna untuk menghemat waktu dan meningkatkan kinerja, tetapi tidak dapat diterapkan di mana-mana.
Dalam contoh FIFA sebelumnya, utas musik tidak bergantung pada utas yang menerima masukan Anda dan utas yang menerima masukan tidak tergantung pada utas yang menjalankan lawan. Utas ini berjalan secara independen karena tidak saling bergantung.

Oleh karena itu, multithreading hanya dapat digunakan jika ketergantungan antara utas individu tidak ada.

Artikel ini selanjutnya menunjukkan bagaimana Anda dapat mencapai Multithreading dengan Python.

Bagaimana cara mencapai Multithreading dengan Python?

Multithreading dengan Python dapat dilakukan dengan mengimpor file threading modul.

Sebelum mengimpor modul ini, Anda harus menginstalnya. Untuk menginstal ini di lingkungan anaconda Anda, jalankan perintah berikut pada prompt anaconda Anda:

conda install -c conda-forge tbb

Setelah berhasil diinstal, Anda dapat menggunakan salah satu dari perintah berikut untuk mengimpor modul threading:

import threading dari import threading *

Sekarang Anda telah menginstal modul threading, mari kita lanjutkan dan lakukan Multithreading dengan Python.

Bagaimana cara membuat utas dengan Python?


Utas dengan Python dapat dibuat dengan tiga cara:

  1. Tanpa membuat kelas
  2. Dengan memperluas kelas Thread
  3. Tanpa memperluas kelas Thread

Tanpa membuat kelas

Multithreading dengan Python dapat dilakukan tanpa membuat kelas juga. Berikut adalah contoh untuk menunjukkan hal yang sama:

Contoh:

dari threading import * print (current_thread (). getName ()) def mt (): print ('Child Thread') child = Thread (target = mt) child.start () print ('Executing thread name:', current_thread ( ) .getName ())

Keluaran:

MainThread Child Thread Pelaksana nama thread: MainThread

Output di atas menunjukkan bahwa utas pertama yang ada adalah utas utama. Utas utama ini kemudian membuat utas anak yang menjalankan fungsi dan kemudian pernyataan cetak terakhir dijalankan lagi oleh utas utama.

Sekarang mari kita lanjutkan dan lihat bagaimana melakukan Multithreading dengan python dengan memperluas kelas Thread.

Dengan memperluas kelas Thread:

Ketika kelas anak dibuat dengan memperluas kelas Thread, kelas anak menyatakan bahwa thread baru sedang menjalankan beberapa tugas. Saat memperluas kelas Thread, kelas anak hanya dapat mengganti dua metode yaitu metode __init __ () dan metode run (). Tidak ada metode lain yang dapat diganti selain kedua metode ini.

Berikut adalah contoh cara memperluas kelas Thread untuk membuat thread:

Contoh:

import threading import time class mythread (threading.Thread): def run (self): untuk x dalam rentang (7): print ('Hi from child') a = mythread () a.start () a.join () print ('Bye from', current_thread (). GetName ())

Keluaran:
Hai dari anak
Hai dari anak
Hai dari anak
Hai dari anak
Hai dari anak
Hai dari anak
Hai dari anak
Selamat tinggal dari MainThread

Contoh di atas menunjukkan bahwa kelas myclass mewarisi kelas Thread dan kelas anak yaitu myclass menggantikan metode run. Secara default, parameter pertama dari setiap fungsi kelas harus self yang merupakan penunjuk ke objek saat ini. Keluarannya menunjukkan bahwa utas anak mengeksekusi metode run () dan utas utama menunggu hingga eksekusi turunan selesai. Ini karena fungsi join (), yang membuat utas utama menunggu anak selesai.

Metode pembuatan utas ini adalah metode yang paling disukai karena metode standarnya. Tetapi jika Anda ingin membuat utas tanpa mewarisi atau memperluas kelas Thread, Anda dapat melakukannya dengan cara berikut.

Tanpa Memperluas kelas Thread

Untuk membuat thread tanpa memperluas kelas Thread, Anda dapat melakukan hal berikut:
Contoh:

dari threading import * class ex: def myfunc (self): #self diperlukan sebagai parameter pertama dalam class func untuk x dalam range (7): print ('Child') myobj = ex () thread1 = Thread (target = myobj. myfunc) thread1.start () thread1.join () print ('selesai')

Keluaran:

Anak
Anak
Anak
Anak
Anak
Anak
Anak
selesai

Utas anak mengeksekusi myfunc setelah itu utas utama mengeksekusi pernyataan cetak terakhir.

Keuntungan menggunakan threading

Multithreading memiliki banyak keunggulan beberapa di antaranya adalah sebagai berikut:

  • Pemanfaatan sumber daya yang lebih baik
  • Menyederhanakan kode
  • Memungkinkan terjadinya berbagai tugas secara bersamaan dan paralel
  • Mengurangi konsumsi waktu atau waktu respons, dengan demikian, meningkatkan kinerja.

Berikut adalah contoh untuk memeriksa berapa lama waktu yang dibutuhkan kode untuk dieksekusi dengan dan tanpa multithreading di python:

 Contoh: 
waktu impor def sqr (n): untuk x dalam n: waktu.sleep (1) x% 2 def cube (n): untuk x dalam n: waktu.sleep (1) x% 3 n = [1,2,3 , 4,5,6,7,8] s = waktu.waktu () sqr (n) kubus (n) e = waktu.waktu () cetak

Keluaran:

16.042309284210205

Di atas adalah waktu keluaran yang dibutuhkan untuk menjalankan program tanpa menggunakan utas. Sekarang mari kita gunakan utas dan lihat apa yang terjadi pada program yang sama:

Contoh:

import threading dari threading import * import time def sqr (n): untuk x in n: time.sleep (1) print ('Sisa setelah membagi dengan 2', x% 2) def cube (n): untuk x dalam n: time.sleep (1) print ('Sisa setelah membagi dengan 3', x% 3) n = [1,2,3,4,5,6,7,8] start = time.time () t1 = Thread ( target = sqr, args = (n,)) t2 = Benang (target = kubus, args = (n,)) t1.start () waktu.sleep (1) t2.start () t1.join () t2.join () akhir = waktu. waktu () cetak (akhir-mulai)
Keluaran: 9.040220737457275

Output di atas dengan jelas menunjukkan bahwa waktu yang dibutuhkan ketika kita menggunakan thread jauh lebih sedikit dibandingkan dengan waktu yang dibutuhkan untuk menjalankan program yang sama tanpa menggunakan thread.

Saya harap Anda memahami konsep yang tercakup dalam artikel ini yang terkait dengan Multithreading dengan Python. Pastikan untuk berlatih sebanyak mungkin karena ini adalah salah satu konsep terpenting yang digunakan dalam pemrograman.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog 'Multithreading in Python' ini dan kami akan menghubungi Anda sesegera mungkin.

Untuk mendapatkan pengetahuan mendalam tentang Python beserta berbagai aplikasinya, Anda dapat mendaftar secara langsung dengan dukungan 24/7 dan akses seumur hidup.