Penjadwal Tugas (Runtime Konkurensi)
Topik di bagian dokumentasi ini menjelaskan fitur penting dari Penjadwal Tugas Runtime Konkurensi. Penjadwal Tugas berguna saat Anda ingin menyempurnakan performa kode yang ada yang menggunakan Runtime Konkurensi.
Penting
Penjadwal Tugas tidak tersedia dari aplikasi Platform Windows Universal (UWP). Untuk informasi selengkapnya, lihat Membuat Operasi Asinkron di C++ untuk Aplikasi UWP.
Di Visual Studio 2015 dan yang lebih baru, kelas konkurensi::tugas dan jenis terkait di ppltasks.h menggunakan Windows ThreadPool sebagai penjadwalnya. Topik ini tidak lagi berlaku untuk jenis yang ditentukan dalam ppltasks.h. Algoritma paralel seperti parallel_for terus menggunakan Runtime Konkurensi sebagai penjadwal default.
Tip
Runtime Konkurensi menyediakan penjadwal default, dan oleh karena itu Anda tidak diharuskan untuk membuatnya di aplikasi Anda. Karena Task Scheduler membantu Anda menyempurnakan performa aplikasi Anda, kami sarankan Anda memulai dengan Pustaka Pola Paralel (PPL) atau Pustaka Agen Asinkron jika Anda baru menggunakan Runtime Konkurensi.
Penjadwal Tugas menjadwalkan dan mengoordinasikan tugas pada waktu proses. Tugas adalah unit kerja yang melakukan pekerjaan tertentu. Tugas biasanya dapat berjalan secara paralel dengan tugas lain. Pekerjaan yang dilakukan oleh item grup tugas, algoritma paralel, dan agen asinkron adalah semua contoh tugas.
Penjadwal Tugas mengelola detail yang terkait dengan penjadwalan tugas secara efisien di komputer yang memiliki beberapa sumber daya komputasi. Penjadwal Tugas juga menggunakan fitur terbaru dari sistem operasi yang mendasar. Oleh karena itu, aplikasi yang menggunakan Runtime Konkurensi secara otomatis menskalakan dan meningkatkan perangkat keras yang memiliki kemampuan yang diperluas.
Membandingkan dengan Model Konkurensi Lainnya menjelaskan perbedaan antara mekanisme penjadwalan preemptive dan kooperatif. Penjadwal Tugas menggunakan penjadwalan kooperatif dan algoritma pencurian kerja bersama dengan penjadwal preemptive sistem operasi untuk mencapai penggunaan maksimum sumber daya pemrosesan.
Runtime Konkurensi menyediakan penjadwal default sehingga Anda tidak perlu mengelola detail infrastruktur. Oleh karena itu, Anda biasanya tidak menggunakan Penjadwal Tugas secara langsung. Namun, untuk memenuhi kebutuhan kualitas aplikasi, Anda dapat menggunakan Penjadwal Tugas untuk memberikan kebijakan penjadwalan Anda sendiri atau mengaitkan penjadwal dengan tugas tertentu. Misalnya, Anda memiliki rutinitas pengurutan paralel yang tidak menskalakan di luar empat prosesor. Anda dapat menggunakan kebijakan penjadwal untuk membuat penjadwal yang menghasilkan tidak lebih dari empat tugas bersamaan. Menjalankan rutinitas pengurutan pada penjadwal ini memungkinkan penjadwal aktif lainnya untuk menggunakan sumber daya pemrosesan yang tersisa.
Topik Terkait
Judul | Deskripsi |
---|---|
Instans Penjadwal | Menjelaskan instans penjadwal dan cara menggunakan concurrency::Scheduler kelas dan concurrency::CurrentScheduler untuk mengelolanya. Gunakan instans penjadwal saat Anda ingin mengaitkan kebijakan penjadwalan eksplisit dengan jenis beban kerja tertentu. |
Kebijakan Penjadwal | Menjelaskan peran kebijakan penjadwal. Gunakan kebijakan penjadwal saat Anda ingin mengontrol strategi yang digunakan penjadwal saat mengelola tugas. |
Jadwalkan Grup | Menjelaskan peran grup jadwal. Gunakan grup jadwal saat Anda memerlukan tingkat lokalitas tinggi di antara tugas, misalnya, ketika sekelompok tugas terkait mendapat manfaat dari eksekusi pada simpul prosesor yang sama. |
Tugas Ringan | Menjelaskan peran tugas ringan. Tugas ringan berguna saat Anda mengadaptasi kode yang ada untuk menggunakan fungsionalitas penjadwalan Concurrency Runtime. |
Konteks | Menjelaskan peran konteks, concurrency::wait fungsi, dan concurrency::Context kelas. Gunakan fungsionalitas ini saat Anda memerlukan kontrol ketika konteks memblokir, membuka blokir, dan hasil, atau saat Anda ingin mengaktifkan kelebihan langganan di aplikasi Anda. |
Fungsi Manajemen Memori | Menjelaskan concurrency::Alloc fungsi dan concurrency::Free . Fungsi-fungsi ini dapat meningkatkan performa memori dengan mengalokasikan dan membebaskan memori secara bersamaan. |
Membandingkan dengan Model Konkurensi Lainnya | Menjelaskan perbedaan antara mekanisme penjadwalan preemptif dan kooperatif. |
Parallel Patterns Library (PPL) | Menjelaskan cara menggunakan berbagai pola paralel, misalnya, algoritma paralel, dalam aplikasi Anda. |
Pustaka Agen Asinkron | Menjelaskan cara menggunakan agen asinkron di aplikasi Anda. |
Runtime Konkurensi | Menjelaskan Runtime Konkurensi, yang menyederhanakan pemrograman paralel, dan berisi tautan ke topik terkait. |