.NET 4 menyertakan namespace baru, System.Threading.Tasks, yang berisi kelas yang mengabstraksi fungsionalitas threading. Gunakan ThreadPool di latar belakang. Tugas mewakili pekerjaan unit yang harus diselesaikan. Pekerjaan unit ini dapat dijalankan dalam utas terpisah atau tugas dapat dimulai secara sinkron, yang membutuhkan menunggu utas penyetelan utama. Menggunakan tugas tidak hanya memberi Anda lapisan abstraksi, tetapi juga memberi Anda banyak kendali atas utas yang mendasarinya. Tugas menawarkan banyak fleksibilitas dalam hal menjadwalkan pekerjaan yang perlu dilakukan. Misalnya, Anda dapat menentukan tugas berkelanjutan – pekerjaan apa yang harus dilakukan setelah tugas selesai. Ini dapat membuat perbedaan antara tugas yang berhasil dan tidak. Selain itu, tugas dapat diatur dalam hierarki. Misalnya, tugas induk dapat membuat tugas turunan baru. Ini menciptakan dependensi sehingga jika Anda membatalkan tugas induk, tugas turunannya juga akan dibatalkan.
Saat ini, sangat populer untuk menggunakan metode eksekusi tugas, dan berkinerja tinggi, dan saya tidak tahu di mana kinerja tugasnya.
Saya menguji Task dan Thread sendiri, dan saya merasa bahwa Task sangat lambat, yang sangat memengaruhi kinerja, dan kode pengujiannya adalah sebagai berikut:
Kami mengulang metode 1000 kali, dan kemudian metode diblokir selama 100 milidetik, dan hasil pengujiannya adalah sebagai berikut:
Hasil:
Eksekusi utas membutuhkan waktu 188 milidetik
Eksekusi tugas membutuhkan waktu 14.671 milidetik
Perbedaan kecepatan antara keduanya adalah 78 kali!!
Tugasnya sangat lambat, tidak tahu mengapa ini terjadi, apakah ada yang salah dengan kode pengujian saya, atau apa? Saya harap Anda dapat menjelaskan mengapa ini terjadi...
|