Python - Memulakan satu Thread

Helo, pemrogram penyepuh! Hari ini, kita akan melangkahkan ke atas dunia yang menarik thread di Python. Jangan khawatir jika anda baru di atas penyelajaran pemrograman – Saya akan pandu anda melalui perjalanan ini langkah demi langkah, sama seperti yang saya telah lakukan untuk pelbagai pelajar selama tahun penyelajaran saya. Mari kita mula!

Python - Starting a Thread

Apa itu Thread?

Sebelum kita melompat ke atas pembuatan thread, mari kita fahami apa itu thread sebenarnya. Bayangkan anda membaca sebuah buku semasa mendengarkan musik. Otak anda secara esenstial melakukan dua tugas secara serentak – itulah pengusahaandian! Di atas dunia komputer, thread bekerja secara serupa. Mereka membenarkan satu program untuk melakukan pelbagai tugas secara serentak.

Memulakan satu Thread di Python

Sekarang kita telah mempunyai pemahaman asas tentang thread, mari kita belajar bagaimana untuk membuat dan memulakan mereka di Python.

Langkah 1: Mengimport modul threading

Hal pertama yang kita perlu buat adalah mengimport modul threading. Modul ini menyediakan semua alat yang kita perlu untuk bekerja dengan thread.

import threading

Langkah 2: Membuat satu fungsi untuk thread

Berikutnya, kita perlu untuk menentukan satu fungsi yang thread kita akan melakukan. Fungsi ini boleh melakukan apa sahaja yang anda mahu – cetak mesej, melakukan kiraan, atau walaupun berinteraksi dengan fail.

def cetak_nombor():
for i in range(1, 6):
print(f"Thread: {i}")

Dalam contoh ini, fungsi kita hanya mencetak nombor dari 1 hingga 5.

Langkah 3: Membuat dan memulakan thread

Sekarang datang bahagian yang menarik – membuat dan memulakan thread kita!

# Buat satu thread
thread = threading.Thread(target=cetak_nombor)

# Mulakan thread
thread.start()

# Cetak satu mesej dari program utama
print("Program utama terus untuk dijalankan")

# Tunggu untuk thread untuk selesai
thread.join()

print("Thread telah selesai")

Mari kita kongsi ini:

  1. Kita membuat satu objek thread menggunakan threading.Thread(), menentukan fungsi kita sebagai target.
  2. Kita mulakan thread menggunakan method start().
  3. Kita cetak satu mesej dari program utama untuk menunjukkan ia terus dijalankan.
  4. Kita gunakan join() untuk menunggu thread untuk selesai sebelum bergerak ke atas.

Apabila anda jalankan kod ini, anda mungkin lihat seperti ini:

Program utama terus untuk dijalankan
Thread: 1
Thread: 2
Thread: 3
Thread: 4
Thread: 5
Thread telah selesai

Perhatikan bagaimana mesej program utama mungkin muncul sebelum, selepas, atau walaupun diantara output thread. Ini kerana thread dijalankan secara serentak!

Pembuatan Thread Lanjutan

Sekarang kita telah menutupi asas, mari kita lihat beberapa cara lebih lanjutan untuk membuat thread.

Menggunakan satu Kelas

Kita juga boleh membuat thread dengan penggunaan subkelas Thread:

class MyThread(threading.Thread):
def __init__(self, nama):
threading.Thread.__init__(self)
self.nama = nama

def run(self):
for i in range(1, 6):
print(f"{self.nama}: {i}")

# Buat dan mulakan thread
thread1 = MyThread("Thread 1")
thread2 = MyThread("Thread 2")

thread1.start()
thread2.start()

thread1.join()
thread2.join()

print("Semua thread telah selesai")

Pendekatan ini membenarkan kita untuk membuat tingkah laku thread yang lebih kompleks dan untuk mempertahankan data khusus thread.

Menghantar Argumen ke atas Thread

Bila-bila masa, kita mahu menghantar argumen ke atas fungsi thread kita. Ini adalah cara:

def greet(nama, kali):
for _ in range(kali):
print(f"Helo, {nama}!")

# Buat dan mulakan satu thread dengan argumen
thread = threading.Thread(target=greet, args=("Alice", 3))
thread.start()
thread.join()

Method Thread

Mari kita lihat beberapa method thread yang berguna:

Method Keterangan
start() Mulakan aktiviti thread
join() Tunggu untuk thread untuk selesai
is_alive() Periksa jika thread masih dijalankan
getName() Dapatkan nama thread
setName() Tetapkan nama thread

rakit penyebab umum dan Tindakan Terbaik

  1. Kondisi Larian: Berhati-hati apabila pelbagai thread mengakses sumber yang dikongsi. Gunakan kunci atau mekanisme penyegerakan lain untuk mencegah tingkah laku yang tidak dijangka.

  2. Kecemasan: Elakkan situasi di mana thread menunggu satu sama lain tanpa akhir.

  3. Keselamatan Thread: Pastikan kod anda adalah selamat untuk thread, khususnya apabila bekerja dengan data yang dikongsi.

  4. Pengurusan Sumber: Berhati-hati dengan penggunaan sumber, kerana membuat terlalu banyak thread boleh lambatkan program anda.

Penutup

Tahniah! Anda telah mengambil langkah pertama anda ke atas dunia thread di Python. Ingat, seperti untuk belajar untuk mengendarai rakit, menguasai thread memerlukan latihan. Jangan khuatir jika ia terasa menantang di atas permulaan – itulah semua adalah sebahagian dari proses belajar.

Apabila kita untuk menutup, saya diingatkan oleh satu pelajar yang sekali katakan kepadaku bahawa untuk memahami thread adalah seperti untuk belajar untuk menghulur – pada permulaan, anda jatuh banyak rakit, tetapi dengan latihan, anda boleh menjaga pelbagai tugas di atas atas secara mudah.

Happy coding, dan may thread anda sentiasa dijalankan dengan lancar!

Credits: Image by storyset