Antrian Multiprosesing Python

Antrian Multiprosesing Python



Elemen terpenting dari struktur data adalah antrian. Antrean struktur data 'masuk pertama, keluar pertama' yang merupakan dasar untuk multiprosesing Python sebanding. Antrean diberikan ke fungsi proses untuk mengizinkan proses mengumpulkan data. Item data pertama yang akan dihilangkan dari antrian adalah item pertama yang akan dimasukkan. Kami menggunakan metode “put()” antrean untuk menambahkan data ke antrean dan metode “get()” untuk mengambil data dari antrean.

Contoh 1: Menggunakan Metode Queue() untuk Membuat Antrean Multiprosesing dengan Python

Dalam contoh ini, kami membuat antrean multiprosesing dengan Python menggunakan metode “queue()”. Multiprocessing mengacu pada penggunaan satu atau lebih CPU dalam suatu sistem untuk melakukan dua atau lebih proses secara bersamaan. Multiprocessing, modul yang dibangun dengan Python, memfasilitasi perpindahan antar proses. Kita harus familiar dengan process property sebelum bekerja dengan multiprocessing. Kami menyadari bahwa antrian adalah komponen penting dari model data. Antrean data standar, yang dibangun di atas ide 'First-In-First-Out', dan multiprosesing Python adalah pasangan yang tepat. Secara umum, antrean menyimpan objek Python dan sangat penting untuk transfer data antartugas.







Alat 'spyder' digunakan untuk mengimplementasikan hadiah skrip Python, jadi mari kita mulai saja. Pertama-tama kita harus mengimpor modul multiprosesing karena kita sedang menjalankan skrip multiprosesing Python. Kami melakukannya dengan mengimpor modul multipemrosesan sebagai 'm'. Dengan menggunakan teknik “m.queue()”, kita memanggil metode multiprosesing “queue()”. Di sini, kita membuat sebuah variabel bernama “queue” dan menempatkan metode multiprocessing “queue()” di dalamnya. Seperti yang kita ketahui bahwa antrian menyimpan item dalam urutan 'masuk pertama, keluar pertama', item yang kita tambahkan terlebih dahulu akan dihapus terlebih dahulu. Setelah meluncurkan antrean multiprosesing, kami kemudian memanggil metode 'print()', meneruskan pernyataan 'Ada antrean multiprosesing' sebagai argumennya untuk menampilkannya di layar. Kemudian, karena kita menyimpan antrean yang dibangun dalam variabel ini, kita mencetak antrean dengan meneruskan variabel “queue” di dalam tanda kurung dari metode “print()”.




Gambar berikut menunjukkan bahwa antrean multiprosesing Python sekarang dibuat. Pernyataan cetak ditampilkan terlebih dahulu. Setelah antrean multiprosesor ini dibuat dalam alamat memori yang ditunjuk, antrean ini dapat digunakan untuk mentransfer data berbeda antara dua atau lebih proses yang sedang berjalan.







Contoh 2: Menggunakan Metode “Qsize()” untuk Menentukan Ukuran Antrean Multiprosesing dengan Python

Dalam hal ini, kami menentukan ukuran antrean multipemrosesan. Untuk menghitung ukuran antrean multiprosesor, kami menggunakan metode “qsize()”. Fungsi 'qsize()' mengembalikan ukuran sebenarnya dari antrean multiprosesing Python. Dengan kata lain, metode ini memberikan jumlah item dalam antrian.

Mari kita mulai dengan mengimpor modul multiprosesing Python sebagai 'm' sebelum menjalankan kode. Kemudian, dengan menggunakan perintah “m.queue()”, kita memanggil fungsi multiprosesing “queue()” dan meletakkan hasilnya di variabel “Queue”. Kemudian, dengan menggunakan metode “put()”, kami menambahkan item ke antrean di baris berikut. Metode ini digunakan untuk menambahkan data ke antrian. Oleh karena itu, kita memanggil “Queue” dengan metode “put()” dan memberikan bilangan bulat sebagai elemennya di dalam tanda kurung. Angka yang kita tambahkan adalah “1”, “2”, “3”, “4”, “5”, “6”, dan “7” menggunakan fungsi “put()”.



Selanjutnya, dengan menggunakan “Queue” untuk mendapatkan ukuran dari multiprocessing queue, kita memanggil “qsize()” dengan multiprocessing queue. Kemudian, dalam variabel “result” yang baru dibentuk, kita menyimpan hasil dari metode “qsize()”. Setelah itu, kita memanggil metode “print()” dan meneruskan pernyataan “Ukuran antrean multiprosesing adalah” sebagai parameternya. Selanjutnya, kita memanggil variabel “result” dalam fungsi “print()” karena ukurannya disimpan dalam variabel ini.


Gambar keluaran memiliki ukuran yang ditampilkan. Saat kita menggunakan fungsi “put()” untuk menambahkan tujuh elemen ke antrean multiprosesor dan fungsi “qsize()” untuk menentukan ukuran, ukuran antrean multiprosesing “7” akan ditampilkan. Pernyataan masukan “ukuran antrean multipemrosesan” ditampilkan sebelum ukuran.

Contoh 3: Menggunakan Metode “Put()” dan “Get()” di Python Multiprocessing Queue

Metode antrean “put()” dan “get()” dari antrean multiprosesing Python digunakan dalam contoh ini. Kami mengembangkan dua fungsi yang ditentukan pengguna dalam contoh ini. Dalam contoh ini, kami mendefinisikan fungsi untuk membuat proses yang menghasilkan bilangan bulat acak “5”. Kami juga menggunakan metode “put()” untuk menambahkannya ke antrean. Metode “put()” digunakan untuk menempatkan item ke dalam antrean. Kemudian, untuk mengambil nomor dari antrian dan mengembalikan nilainya, kami menulis fungsi lain dan memanggilnya selama prosedur. Kita menggunakan fungsi “get()” untuk mengambil nomor dari antrian karena metode ini digunakan untuk mengambil data dari antrian yang kita sisipkan menggunakan metode “put()”.

Mari mulai menerapkan kode sekarang. Pertama, kami mengimpor empat pustaka yang membentuk skrip ini. Pertama-tama kita mengimpor 'tidur' dari modul waktu untuk menunda eksekusi selama beberapa waktu yang diukur dalam detik, diikuti oleh 'acak' dari modul acak yang digunakan untuk menghasilkan angka acak, lalu 'proses' dari multiprosesing karena kode ini membuat proses , dan terakhir, “queue” dari multiprocessing. Dengan awalnya membuat instance kelas, antrian dapat digunakan. Secara default, ini membuat antrean tak terbatas atau antrean tanpa ukuran maksimum. Dengan menyetel opsi ukuran maks ke angka yang lebih besar dari nol, dimungkinkan untuk membuat kreasi dengan batasan ukuran.


Kami mendefinisikan fungsi. Kemudian, karena fungsi ini ditentukan oleh pengguna, kami memberinya nama 'fungsi1' dan meneruskan istilah 'antrean' sebagai argumennya. Setelah itu, kita memanggil fungsi “print()”, meneruskannya ke pernyataan “builder: Running”, “flush”, dan objek “True”. . Fungsi cetak Python memiliki opsi unik yang disebut flush yang memungkinkan pengguna memilih apakah akan menyangga keluaran ini atau tidak. Langkah selanjutnya adalah membuat tugas. Untuk melakukannya, kami menggunakan 'untuk' dan membuat variabel 'm' dan menetapkan rentang ke '5'. Kemudian, pada baris berikutnya, gunakan “random()” dan simpan hasilnya dalam variabel yang kita buat yaitu “nilai”. Ini menunjukkan bahwa fungsi sekarang menyelesaikan lima iterasinya, dengan setiap iterasi membuat bilangan bulat acak dari 0 hingga 5.

Kemudian, pada langkah berikutnya, kita memanggil fungsi “sleep()” dan meneruskan argumen “value” untuk menunda bagian tersebut selama beberapa detik. Kemudian, kita memanggil 'antrean' dengan metode 'put()' untuk menambahkan nilai ke antrean. Pengguna kemudian diberi tahu bahwa tidak ada pekerjaan lebih lanjut yang harus dilakukan dengan memanggil metode “queue.put()” sekali lagi dan meneruskan nilai “None”. Kemudian, kami menjalankan metode 'print()', meneruskan pernyataan 'builder: ready' bersama dengan 'flush' dan menyetelnya ke 'True'.


Kami sekarang mendefinisikan fungsi kedua, 'function2', dan menetapkan kata kunci 'queue' sebagai argumennya. Kemudian, kita memanggil fungsi “print()” sambil meneruskan laporan yang menyatakan “User: Running” dan “flush” yang disetel ke “True”. Kami memulai operasi 'function2' menggunakan kondisi while true untuk mengeluarkan data dari antrian dan memasukkannya ke dalam variabel 'item' yang baru dibuat. Kemudian, kami menggunakan kondisi 'jika', 'item tidak ada', untuk menghentikan perulangan jika kondisinya benar. Jika tidak ada item yang tersedia, item tersebut akan berhenti dan meminta item tersebut kepada pengguna. Tugas menghentikan perulangan dan berakhir dalam kasus ini jika item yang diperoleh dari nilai adalah null. Kemudian, pada langkah berikutnya, kita memanggil fungsi 'print()' dan memberikan laporan 'User: ready' dan parameter 'flush=True' ke dalamnya.


Kemudian, kita masuk ke proses utama menggunakan “If-name = main_”. Kami membuat antrean dengan memanggil metode “queue()” dan menyimpannya dalam variabel “queue”. Selanjutnya, kami membuat proses dengan memanggil fungsi pengguna 'function2'. Untuk ini, kami memanggil kelas 'proses'. Di dalamnya, kita meneruskan 'target=function2' untuk memanggil fungsi dalam proses, meneruskan argumen 'queue', dan menyimpannya dalam variabel 'User_process'. Proses kemudian dimulai dengan memanggil metode “start()” dengan variabel “User_ process”. Kami kemudian mengulangi prosedur yang sama untuk memanggil 'function1' dalam proses dan memasukkannya ke dalam variabel 'proses pembangun'. Kemudian, kita memanggil proses dengan metode “join()” untuk menunggu eksekusi.


Setelah disajikan, Anda dapat melihat pernyataan kedua fungsi di output. Ini menampilkan item yang kami tambahkan menggunakan 'put()' dan 'get()' dengan menggunakan metode 'get()', masing-masing.

Kesimpulan

Kami belajar tentang antrean multiprosesing Python di artikel ini. Kami menggunakan ilustrasi yang diberikan. Pada awalnya, kami menjelaskan cara membuat antrean dalam multiprosesing Python menggunakan fungsi antrean(). Kemudian, kami menggunakan metode “qsize()” untuk menentukan antrean . Kami juga menggunakan metode antrean put() dan get(). Kelas tidur dari modul waktu dan kelas acak dari modul acak keduanya dibahas dalam contoh terakhir.