Jika sebuah thread hanyalah proses lain, bagaimana cara mengurangi beban kerja CPU dan menangani meronta-ronta?


-1

Apa artinya ketika mereka mengatakan bahwa utas adalah proses yang ringan ? Jika ini hanya proses lain, bagaimana cara mengurangi beban kerja CPU?


Mengurangi beban kerja CPU dibandingkan dengan apa? Dan mengapa mengurangi beban kerja CPU menjadi tujuan? Bukankah CPU dimaksudkan untuk digunakan ?
Andrew Henle

Maksud saya pengurangan beban kerja untuk menghindari meronta-ronta. Mengurangi beban kerja akan memungkinkannya untuk menangani lebih banyak proses sehingga CPU lebih baik 'digunakan'.
Vimugdh Lall

Jawaban:


2

Thread bukan hanya proses lain. Setelah Anda memahami proses dan utas apa, pertanyaan Anda harus dijawab.

Suatu proses dapat dibandingkan dengan keluarga manusia dan utas adalah anggotanya. Proses ini membuktikan lingkungan dan mengelola sumber daya yang digunakan oleh utas. Dalam dirinya sendiri suatu proses tidak dapat melakukan apa-apa, semua yang dilakukannya dilakukan oleh utas anggota. Suatu proses hanyalah rumah tempat benang hidup dan bekerja. Suatu proses tidak dapat ada kecuali ia memiliki setidaknya satu utas. Ketika utas terakhir dari suatu proses berakhir, OS akan menghancurkan proses dan membebaskan semua sumber daya yang digunakannya. Tidak ada yang namanya utas independen. Itu harus menjadi anggota suatu proses.

Biasanya suatu aplikasi akan terdiri dari satu proses yang dengan sendirinya terdiri dari satu atau lebih utas. Aplikasi besar terkadang memiliki banyak proses. OS berusaha sangat keras untuk mengisolasi proses satu sama lain untuk mencegah gangguan yang tidak disengaja atau berbahaya. OS memberi setiap proses ilusi bahwa itu berjalan sendiri di komputer. Ia harus melakukan beberapa pekerjaan nyata untuk mengetahui keberadaan orang lain. Proses dapat berbagi sumber daya dan bekerja bersama tetapi pengembang harus bekerja untuk mencapai ini. Itu bukan keadaan alami.

Utas dirancang untuk berbagi sumber daya dan bekerja bersama. Sebuah proses dengan hanya satu utas paling mudah untuk dikelola tetapi beberapa utas menyediakan fleksibilitas dan kemampuan yang lebih besar. Aplikasi besar hampir selalu menggunakan banyak utas. Ini membutuhkan kerja dari pihak pengembang untuk memastikan mereka bekerja secara harmonis dan tidak saling mengganggu. Contohnya adalah satu thread membaca data sementara yang lain memodifikasinya. Hasil itu tidak dapat diprediksi.

Thread lebih ringan daripada proses karena tidak memiliki proses overhead. Overhead ini sebagian besar adalah memori dan membuat sedikit perbedaan pada CPU kecuali ketika proses dibuat dan itu hanya terjadi sekali. Biasanya lebih efisien untuk membuat utas baru dalam suatu proses daripada membuat seluruh proses baru. Tetapi untuk alasan praktis yang terakhir sering diperlukan.


Saya kira saya salah memahami utas. Bagaimanapun, terima kasih membantu saya memahaminya dengan lebih baik dan menghilangkan kekurangan dalam asimilasi saya. :)
Vimugdh Lall
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.