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.
Topik dalam bagian dokumentasi ini menjelaskan fitur penting dari Penjadwal Tugas Concurrency Runtime. Penjadwal Tugas berguna saat Anda ingin melakukan penyempurnaan performa kode yang ada yang menggunakan Concurrency Runtime.
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 Concurrency Runtime sebagai penjadwal default.
Petunjuk / Saran
Runtime Konkurensi menyediakan penjadwal bawaan, jadi Anda tidak perlu 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 Concurrency Runtime.
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 kinerjanya pada perangkat keras dengan kemampuan yang diperluas.
Membandingkan dengan Model Konkurensi Lainnya menjelaskan perbedaan antara mekanisme penjadwalan praemptif dan kooperatif. Penjadwal Tugas menggunakan penjadwalan kooperatif dan algoritma pencurian kerja bersama dengan penjadwal preemptif sistem operasi untuk mencapai penggunaan maksimum sumber daya pengolahan.
Runtime Konkurensi menyediakan penjadwal bawaan sehingga Anda tidak perlu mengurusi 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 menyela, atau saat Anda ingin mengaktifkan oversubscription di aplikasi Anda. |
| Fungsi Manajemen Memori | Menjelaskan fungsi concurrency::Alloc 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. |
| Pustaka Pola Paralel (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 | Deskripsi tentang Concurrency Runtime, yang menyederhanakan pemrograman paralel, serta memuat tautan ke topik-topik terkait. |