(0275) 2974 127
Python memiliki banyak tugas dan aktivitas yang terjadi di latar belakang; tugas-tugas ini disebut proses. Dan, seperti spesies ular yang juga dapat memiliki subspesies, proses Python dapat memiliki subproses. Meskipun informasi ini bisa terasa menakutkan, kenyataannya informasi ini memiliki kekuatan untuk membuat pekerjaan kita lebih mudah dikelola.
Subproses adalah tugas yang dibuat oleh proses untuk menyelesaikan tugas dalam proses induk. Mari kita kembangkan itu; proses adalah tugas yang dilakukan oleh program selama eksekusinya. Dalam banyak kasus, jika tidak semua kasus, proses biasanya memiliki tugas yang lebih kecil yang perlu diselesaikan sebelum proses dapat berakhir.
Di sinilah subproses ikut bermain. Ketika sebuah proses memiliki tugas kecil yang perlu diselesaikan, itu dapat menelurkan subproses untuk menangani tugas itu sementara proses terus berjalan. Ini menciptakan cara yang lebih lancar dan efisien untuk mengelola data dan memori.
Jika proses baru dibuat untuk setiap tugas yang harus diselesaikan oleh suatu proses, perangkat akan segera kehabisan memori untuk menyelesaikan tugas tersebut. Selain itu, metodologi ini akan sangat tidak efisien karena beban kerja yang pada akhirnya akan dikenakan pada prosesor perangkat.
Dengan membuat subproses kecil untuk menangani tugas yang lebih mudah dalam suatu proses akan dapat menjalankan lebih banyak proses secara bersamaan. Ini disebut multiprocessing, paket yang ditambahkan ke bahasa Python untuk mendukung penggunaan beberapa prosesor. Sebagai bahasa yang lebih tua, Python tidak membantu kinerja seperti itu karena perangkat tidak memiliki banyak prosesor saat itu.
Fakta sejarah : Modul subproses ditambahkan dalam Python 2.4 untuk meningkatkan efisiensi dan menggantikan pendekatan manajemen data dan memori yang sudah ketinggalan zaman. Tak lama setelah menambahkan subproses, Python menambahkan modul multiproses yang disertakan dalam Python 2.6 dan di atasnya. Penambahan paket multiproses ini bertujuan untuk lebih meningkatkan kinerja perangkat lunak pada perangkat dengan banyak CPU.
Sebelum menggunakan subproses di Python, mari kita bicara tentang cara kerjanya dengan contoh yang relatif umum untuk pengguna komputer. Semua komputer memiliki pengelola tugas; program ini dirancang untuk menonton proses yang berjalan di komputer. Komputer menetapkan beberapa RAM dan ruang CPU untuk setiap proses yang berjalan. Konsep ini umum, tetapi banyak pengguna tidak tahu bahwa proses ini sering menjalankan tugas.
Untuk menggunakan subproses dalam Python harus membuatnya. Python menyertakan metode dalam modul subproses yang disebut panggilan, yang memulai proses baru. Metode menerima perintah yang akan memberi tahu subproses tindakan apa yang perlu diselesaikan.
Misalnya, untuk memulai notepad windows sebagai subproses untuk proses induk akan meneruskan string your/path/to/program/notepad.exe, termasuk jalurnya. Ini akan memberi tahu subproses untuk menemukan file notepad.exe menggunakan jalur yang disediakan dan kemudian membuka dan menjalankan file tersebut.
import subprocess code = subprocess.call("notepad.exe") if code == 0: print("Success!") else: print("Error!") Success!
Subproses hadir dengan lebih dari sekedar metode panggilan; itu termasuk metode Popen(). Metode Popen tidak menunggu subproses berakhir sebelum mengembalikan informasi. Untuk melakukan ini dengan Popen harus menggunakan metode wait() setelah Popen. Mari kita lihat tiga contoh bagaimana menggunakan subproses.
Dalam contoh ini akan melihat subproses yang digunakan untuk melakukan ping ke situs web dan memeriksa status operasinya.
Metode Popen tidak menunggu untuk menyelesaikan proses untuk mengembalikan nilai. Artinya informasi yang didapatkan kembali tidak akan lengkap. Sebagai gantinya akan mendapatkan respons bahwa tugas awal telah dimulai tetapi tidak ada apa-apa tentang penyelesaiannya.
program = "notepad.exe" subprocess.Popen(program) /*response*/ <subprocess.Popen object at 0x01EE0430>
Kode di atas berhasil memulai program, tetapi tidak akan menerima informasi tentang sisa proses operasi. Untuk mendapatkan informasi tentang seluruh fungsi proses dan mempelajari apakah ada kesalahan selama runtime perlu menggunakan metode wait.
program = "notepad.exe" process = subprocess.Popen(program) code = process.wait() print(code) /*result*/ 0
Metode wait menunggu untuk mengembalikan nilai hingga subproses selesai dan, dalam hal ini, mengembalikan nol, yang berarti tidak ada kesalahan.
Ada kasus di mana tidak dapat menggunakan metode wait() karena dapat menyebabkan kebuntuan yang membekukan program hingga diselesaikan, khususnya saat menggunakan perintah stdout/stderr=PIPE. Dalam kasus ini, alih-alih menggunakan wait(), dapat menggunakan metode communication(). Mari kita lihat bagaimana hal itu dilakukan selanjutnya.
args = ["ping", "www.google.com"] process = subprocess.Popen(args, stdout=subprocess.PIPE) data = process.communicate() print(data)
Demi posting ini, hasil dari tindakan ini tidak penting untuk operasinya. Tetapi perlu diperhatikan informasi yang dikembalikan oleh metode communication() bahwa ini adalah tuple dua elemen yang berisi apa yang ada di stdout dan stderr.
Sekarang harus merasa percaya diri dalam memahami cara kerja subproses Python dan apa artinya bagi kebutuhan pengembangan perangkat lunak. Masih banyak yang perlu dipertimbangkan untuk bergerak maju dengan subproses termasuk cara lain untuk berinteraksi dengan mereka. Ini adalah subjek yang luas, tetapi lebih dari siap untuk mempelajari lebih banyak tentang mereka. Lihat pemikiran terakhir tentang subproses ini untuk diingat saat mendorong maju.
Dengan fakta-fakta ini di tangan dan contoh-contoh di atas, siap untuk mulai menggunakan modul subproses dalam perangkat lunak.
Design website toko online tidak hanya soal estetika, tapi juga UX yang bagus secara keseluruhan.…
Sebelum memulai karir Anda sebagai desainer UX, Anda harus membuat portofolio yang mencakup semua pengalaman…
Keep-Alive memungkinkan browser pengunjung Anda mendownload semua konten (JavaScript, CSS, gambar, video, dll) melalui koneksi…
Job description seorang web developer adalah membuat situs web menggunakan berbagai bahasa pemrograman. Tanggung jawab…
Secara default, WordPress tidak mendukung A/B testing. Tapi jangan khawatir. Di bawah ini, kami telah…
UX design merupakan singkatan dari User Experience design atau desain pengalaman pengguna. Istilah ini sering…