Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan pengurutan utas mengatur eksekusi satu atau beberapa utas klien. Ini memastikan bahwa setiap utas klien berjalan sekali selama periode yang ditentukan dan dalam urutan relatif.
Windows Server 2003 dan Windows XP: Layanan pengurutan utas tersedia mulai dari Windows Vista dan Windows Server 2008.
Layanan pemesanan utas dinonaktifkan secara default dan harus diaktifkan oleh pengguna. Saat layanan pengurutan thread berjalan, layanan ini diaktifkan setiap 5 detik untuk memeriksa apakah ada permintaan baru, bahkan jika sistem dalam keadaan diam. Ini mencegah sistem tidur lebih dari 5 detik, menyebabkan sistem mengonsumsi lebih banyak daya. Jika efisiensi energi sangat penting untuk aplikasi, lebih baik tidak menggunakan layanan pengurutan utas dan sebagai gantinya memungkinkan penjadwal sistem untuk mengelola eksekusi utas.
Setiap utas klien termasuk dalam kelompok pengurutan utas . Utas induk membuat satu atau beberapa grup urutan utas dengan memanggil fungsi AvRtCreateThreadOrderingGroup. Utas induk menggunakan fungsi ini untuk menentukan periode untuk kelompok pengaturan utas dan interval batas waktu.
Utas klien tambahan memanggil fungsi AvRtJoinThreadOrderingGroup untuk bergabung dengan grup pemesanan utas yang ada. Utas-utas ini menunjukkan apakah utas tersebut akan menjadi pendahulu atau penerus utas induk dalam urutan eksekusi. Setiap utas klien diharapkan menyelesaikan sejumlah pemrosesan setiap periode. Semua utas dalam grup harus menyelesaikan eksekusinya dalam periode waktu yang ditentukan ditambah interval batas waktu.
Utas-utas dari grup pengurutan utas mengapit kode pemrosesan mereka di dalam suatu perulangan yang dikendalikan oleh fungsi AvRtWaitOnThreadOrderingGroup. Pertama, utas pendahulu dijalankan satu per satu sesuai urutan saat mereka bergabung dengan kelompok, sementara utas induk dan penerus diblokir pada panggilan mereka ke AvRtWaitOnThreadOrderingGroup. Ketika setiap utas pendahulu menyelesaikan pemrosesannya, kontrol eksekusi kembali ke awal loop pemrosesan dan utas tersebut memanggil AvRtWaitOnThreadOrderingGroup lagi untuk memblokir sampai giliran berikutnya. Setelah semua utas pendahulu memanggil fungsi ini, layanan pengurutan utas dapat menjadwalkan utas induk. Akhirnya, ketika utas induk menyelesaikan pemrosesannya dan memanggil AvRtWaitOnThreadOrderingGroup lagi, layanan pengurutan utas dapat menjadwalkan utas penerus satu per satu berdasarkan urutan mereka bergabung dengan grup. Jika semua utas menyelesaikan eksekusinya sebelum periode berakhir, semua utas menunggu hingga sisa periode berlalu sebelum dijalankan lagi.
Ketika klien tidak perlu lagi berfungsi sebagai bagian dari grup pemesanan utas, klien itu memanggil fungsi AvRtLeaveThreadOrderingGroup untuk menghapus dirinya dari grup. Perhatikan bahwa utas induk tidak boleh menghapus dirinya sendiri dari grup pemesanan utas. Jika sebuah utas tidak menyelesaikan eksekusinya sebelum periode ditambah dengan interval batas waktu habis, maka utas tersebut akan dihapus dari grup.
Utas induk memanggil fungsi AvRtDeleteThreadOrderingGroup untuk menghapus grup pengurutan utas. Grup pengurutan utas juga akan dihancurkan jika utas induk tidak menyelesaikan eksekusinya sebelum periode dan batas waktu berlalu. Ketika grup pengurutan utas dihancurkan, setiap panggilan ke AvRtWaitOnThreadOrderingGroup dari utas grup tersebut gagal atau habis waktu.