Rangkaian penjadwalan

Setiap rangkaian memiliki prioritas rangkaian yang ditetapkan untuk itu. Rangkaian yang dibuat dalam runtime bahasa umum awalnya diberi prioritas ThreadPriority.Normal. Rangkaian yang dibuat di luar runtime mempertahankan prioritas yang mereka miliki sebelum memasuki lingkungan terkelola. Anda bisa mendapatkan atau mengatur prioritas rangkaian apa pun dengan properti Thread.Priority.

Rangkaian dijadwalkan untuk eksekusi berdasarkan prioritas mereka. Meskipun rangkaian sedang dijalankan dalam runtime, semua rangkaian diberi potongan waktu prosesor oleh sistem operasi. Rincian algoritma penjadwalan yang digunakan untuk menentukan urutan di mana rangkaian dieksekusi bervariasi dengan setiap sistem operasi. Di bawah beberapa sistem operasi, rangkaian dengan prioritas tertinggi (dari rangkaian yang dapat dieksekusi) selalu dijadwalkan untuk berjalan terlebih dahulu. Jika beberapa rangkaian dengan prioritas yang sama semuanya tersedia, penjadwal siklus melalui rangkaian pada prioritas itu, memberikan setiap thread potongan waktu tetap di mana untuk menjalankan. Selama rangkaian dengan prioritas yang lebih tinggi tersedia untuk dijalankan, rangkaian prioritas yang lebih rendah tidak dapat dijalankan. Ketika tidak ada lagi rangkaian yang dapat dijalankan pada prioritas tertentu, penjadwal pindah ke prioritas yang lebih rendah berikutnya dan menjadwalkan rangkaian pada prioritas itu untuk pengeksekusian. Jika rangkaian prioritas yang lebih tinggi menjadi dapat dijalankan, rangkaian prioritas yang lebih rendah akan didahului dan utas prioritas yang lebih tinggi diizinkan untuk dijalankan sekali lagi. Di atas semua itu, sistem operasi juga dapat menyesuaikan prioritas rangkaian secara dinamis karena antarmuka pengguna aplikasi dipindahkan antara latar depan dan latar belakang. Sistem operasi lain mungkin memilih untuk menggunakan algoritma penjadwalan yang berbeda.

Lihat juga