Runtime Konkurensi
Runtime Konkurensi untuk C++ membantu Anda menulis aplikasi paralel yang kuat, dapat diskalakan, dan responsif. Ini meningkatkan tingkat abstraksi sehingga Anda tidak perlu mengelola detail infrastruktur yang terkait dengan konkurensi. Anda juga dapat menggunakannya untuk menentukan kebijakan penjadwalan yang memenuhi kualitas tuntutan layanan aplikasi Anda. Gunakan sumber daya ini untuk membantu Anda mulai bekerja dengan Runtime Konkurensi.
Untuk dokumentasi referensi, lihat Referensi.
Tip
Concurrency Runtime sangat bergantung pada fitur C++11 dan mengadopsi gaya C++ yang lebih modern. Untuk mempelajari lebih lanjut, baca Selamat Datang Kembali ke C++.
Memilih Fitur Runtime Konkurensi
Artikel | Deskripsi |
---|---|
Ringkasan | Mengajarkan mengapa Runtime Konkurensi penting dan menggambarkan fitur-fitur utamanya. |
Membandingkan dengan Model Konkurensi Lainnya | Menunjukkan bagaimana Runtime Konkurensi dibandingkan dengan model konkurensi lain, seperti kumpulan utas Windows dan OpenMP, sehingga Anda dapat menggunakan model konkurensi yang paling sesuai dengan kebutuhan aplikasi Anda. |
Migrasi dari OpenMP ke Runtime Konkurensi | Membandingkan OpenMP dengan Runtime Konkurensi dan memberikan contoh tentang cara memigrasikan kode OpenMP yang ada untuk menggunakan Concurrency Runtime. |
Parallel Patterns Library (PPL) | Memperkenalkan Anda ke PPL, yang menyediakan perulangan paralel, tugas, dan kontainer paralel. |
Pustaka Agen Asinkron | Memperkenalkan Anda tentang cara menggunakan agen asinkron dan passing pesan untuk menggabungkan aliran data dan tugas alur dengan mudah dalam aplikasi Anda. |
Tugas Microsoft Azure Scheduler | Memperkenalkan Anda ke Task Scheduler, yang memungkinkan Anda menyempurnakan performa aplikasi desktop yang menggunakan Concurrency Runtime. |
Paralelisme Tugas dalam PPL
Artikel | Deskripsi |
---|---|
Paralelisme Tugas Cara: Menggunakan parallel_invoke untuk Menulis Rutinitas Pengurutan Paralel Cara: Menggunakan parallel_invoke untuk Menjalankan Operasi Paralel Cara: Membuat Tugas yang Selesai Setelah Penundaan |
Menjelaskan tugas dan grup tugas, yang dapat membantu Anda menulis kode asinkron dan menguraikan pekerjaan paralel menjadi bagian yang lebih kecil. |
Panduan: Menerapkan Futures | Menunjukkan cara menggabungkan fitur Concurrency Runtime untuk melakukan sesuatu yang lebih. |
Panduan: Menghapus Pekerjaan dari Utas Antarmuka Pengguna | Menunjukkan cara memindahkan pekerjaan yang dilakukan oleh utas UI dalam aplikasi MFC ke utas pekerja. |
Praktik Terbaik di Pustaka Pola Paralel Praktik Terbaik Umum dalam Runtime Konkurensi |
Memberikan tips dan praktik terbaik untuk bekerja dengan PPL. |
Paralelisme Data dalam PPL
Artikel | Deskripsi |
---|---|
Algoritma Paralel Cara: Menulis perulangan parallel_for Cara: Menulis perulangan parallel_for_each Cara: Melakukan Operasi Peta dan Kurangi Secara Paralel |
parallel_for Menjelaskan , parallel_for_each , parallel_invoke , dan algoritma paralel lainnya. Gunakan algoritma paralel untuk menyelesaikan masalah paralel data yang melibatkan pengumpulan data. |
Kontainer dan Objek Paralel Cara: Menggunakan Kontainer Paralel untuk Meningkatkan Efisiensi Cara: Menggunakan yang dapat dikombinasikan untuk Meningkatkan Performa Cara: Menggunakan yang dapat dikombinasikan untuk Menggabungkan Set |
combinable Menjelaskan kelas, serta concurrent_vector , , concurrent_queue concurrent_unordered_map , dan kontainer paralel lainnya. Gunakan kontainer dan objek paralel saat Anda memerlukan kontainer yang menyediakan akses aman utas ke elemennya. |
Praktik Terbaik di Pustaka Pola Paralel Praktik Terbaik Umum dalam Runtime Konkurensi |
Memberikan tips dan praktik terbaik untuk bekerja dengan PPL. |
Membatalkan Tugas dan Algoritma Paralel
Artikel | Deskripsi |
---|---|
Pembatalan di PPL | Menjelaskan peran pembatalan di PPL, termasuk cara memulai dan menanggapi permintaan pembatalan. |
Cara: Menggunakan Pembatalan untuk Memutuskan dari Perulangan Paralel Cara: Menggunakan Penanganan Pengecualian untuk Memutuskan dari Perulangan Paralel |
Menunjukkan dua cara untuk membatalkan pekerjaan paralel data. |
aplikasi Platform Windows Universal
Artikel | Deskripsi |
---|---|
Membuat Operasi Asinkron di C++ untuk Aplikasi UWP | Menjelaskan beberapa poin penting yang perlu diingat saat Anda menggunakan Runtime Konkurensi untuk menghasilkan operasi asinkron di aplikasi UWP. |
Panduan: Menyambungkan Menggunakan Tugas dan Permintaan HTTP XML | Memperlihatkan cara menggabungkan tugas PPL dengan IXMLHTTPRequest2 antarmuka dan IXMLHTTPRequest2Callback untuk mengirim permintaan HTTP GET dan POST ke layanan web di aplikasi UWP. |
Sampel aplikasi Windows Runtime | Berisi sampel kode yang dapat diunduh dan aplikasi demo untuk Windows Runtime. |
Pemrograman Aliran Data di Pustaka Agen Asinkron
Artikel | Deskripsi |
---|---|
Agen Asinkron Blok Pesan Asinkron Fungsi Passing Pesan Cara: Menerapkan Berbagai Pola Produsen-Konsumen Cara: Menyediakan Fungsi Kerja ke Kelas panggilan dan transformator Cara: Menggunakan transformator dalam Alur Data Cara: Pilih Di Antara Tugas yang Selesai Cara: Mengirim Pesan pada Interval Reguler Cara: Menggunakan Filter Blok Pesan |
Menjelaskan agen asinkron, blok pesan, dan fungsi pengiriman pesan, yang merupakan blok penyusun untuk melakukan operasi aliran data di Runtime Konkurensi. |
Panduan: Membuat Aplikasi Berbasis Agen Panduan: Membuat Agen Aliran Data |
Menunjukkan cara membuat aplikasi dasar berbasis agen. |
Panduan: Membuat Jaringan Pemrosesan Gambar | Memperlihatkan cara membuat jaringan blok pesan asinkron yang melakukan pemrosesan gambar. |
Panduan: Menggunakan gabungan untuk Mencegah Kebuntuan | Menggunakan masalah filsuf makan untuk menggambarkan cara menggunakan Runtime Konkurensi untuk mencegah kebuntuan dalam aplikasi Anda. |
Panduan: Membuat Blok Pesan Kustom | Memperlihatkan cara membuat jenis blok pesan kustom yang mengurutkan pesan masuk berdasarkan prioritas. |
Praktik Terbaik di Pustaka Agen Asinkron Praktik Terbaik Umum dalam Runtime Konkurensi |
Memberikan tips dan praktik terbaik untuk bekerja dengan agen. |
Penanganan dan Penelusuran Kesalahan Pengecualian
Artikel | Deskripsi |
---|---|
Penanganan Pengecualian | Menjelaskan cara bekerja dengan pengecualian dalam Runtime Konkurensi. |
Alat Diagnostik Paralel | Mengajari Anda cara menyempurnakan aplikasi Anda dan memanfaatkan Runtime Konkurensi yang paling efektif. |
Menyetel Performa
Artikel | Deskripsi |
---|---|
Alat Diagnostik Paralel | Mengajari Anda cara menyempurnakan aplikasi Anda dan memanfaatkan Runtime Konkurensi yang paling efektif. |
Instans Penjadwal Cara: Mengelola Instans Scheduler Kebijakan Penjadwal Cara: Menentukan Kebijakan Penjadwal Tertentu Cara: Membuat Agen yang Menggunakan Kebijakan Penjadwal Tertentu |
Menunjukkan cara bekerja dengan mengelola instans penjadwal dan kebijakan penjadwal. Untuk aplikasi desktop, kebijakan penjadwal memungkinkan Anda mengaitkan aturan tertentu dengan jenis beban kerja tertentu. Misalnya, Anda dapat membuat satu instans penjadwal untuk menjalankan beberapa tugas pada prioritas utas yang ditingkatkan dan menggunakan penjadwal default untuk menjalankan tugas lain pada prioritas utas normal. |
Jadwalkan Grup Cara: Menggunakan Grup Jadwal untuk Memengaruhi Urutan Eksekusi |
Menunjukkan cara menggunakan grup jadwal untuk mendefinisikan, atau mengelompokkan, tugas terkait bersama-sama. Misalnya, Anda mungkin memerlukan tingkat lokalitas yang tinggi di antara tugas-tugas terkait ketika tugas tersebut mendapat manfaat dari eksekusi pada simpul prosesor yang sama. |
Tugas Ringan | Menjelaskan bagaimana tugas ringan berguna untuk membuat pekerjaan yang tidak memerlukan penyeimbangan beban atau pembatalan, dan bagaimana tugas tersebut juga berguna untuk mengadaptasi kode yang ada untuk digunakan dengan Runtime Konkurensi. |
Konteks Cara: Menggunakan Kelas Konteks untuk Menerapkan Koperasi Semaphore Cara: Menggunakan Oversubscription untuk Mengimbangi Latensi |
Menjelaskan cara mengontrol perilaku utas yang dikelola oleh Concurrency Runtime. |
Fungsi Manajemen Memori Cara: Gunakan Alokasi dan Gratis untuk Meningkatkan Performa Memori |
Menjelaskan fungsi manajemen memori yang disediakan Runtime Konkurensi untuk membantu Anda mengalokasikan dan membebaskan memori secara bersamaan. |
Sumber Tambahan
Artikel | Deskripsi |
---|---|
Pola dan tips pemrograman asinkron di Hilo (aplikasi Windows Store menggunakan C++ dan XAML) | Pelajari cara kami menggunakan Runtime Konkurensi untuk menerapkan operasi asinkron di Hilo, aplikasi Windows Runtime menggunakan C++ dan XAML. |
Pemrograman Paralel di blog Kode Asli | Menyediakan artikel blog mendalam tambahan tentang pemrograman paralel dalam Concurrency Runtime. |
Komputasi Paralel di forum C++ dan Native Code | Memungkinkan Anda berpartisipasi dalam diskusi komunitas tentang Concurrency Runtime. |
Pemrograman Paralel | Mengajarkan Anda tentang model pemrograman paralel yang tersedia di .NET Framework. |