Ketika menulis multithreaded kode, selalu ada risiko untuk Kondisi ras. Kondisi ras terjadi ketika output satu operasi tergantung pada waktu proses lain di luar kendalinya.
Kondisi ras tidak selalu bug, tetapi merupakan sumber perilaku nondeterministik. Ketika kondisi ras tidak menyebabkan bug, itu bisa sulit untuk menemukan sumber masalah karena tergantung pada waktu, sehingga Anda hanya dapat menciptakan masalah pada kesempatan langka. Debugging dapat menyebabkan masalah hilang, karena breakpoints dan logging dapat mengubah waktu benang individu. Kondisi balap menghasilkan tantangan paling signifikan dalam menulis kode multithreaded.
Untuk memudahkan untuk menulis kode multithreaded, Sistem Kerja Unity C # mendeteksi semua kondisi ras potensial dan melindungi Anda dari bug yang dapat mereka penyebab.
Sebagai contoh: jika Sistem Kerja C# mengirim data reference dari kode Anda dalam benang kontrol ke pekerjaan, itu tidak dapat memverifikasi apakah benang kontrol membaca data pada saat yang sama pekerjaan ditulis untuk itu. skenario ini menciptakan kondisi balapan.
Sistem Kerja C# memecahkan ini dengan mengirimkan setiap pekerjaan salinan data yang perlu dioperasikan, daripada referensi ke data dalam benang kontrol. Salinan ini mengisolasi data, yang menghilangkan kondisi balap.
Cara data salinan Sistem Kerja C# berarti bahwa pekerjaan hanya dapat mengakses jenis data yang stabil. Jenis-jenis ini tidak perlu konversi ketika dilewatkan antara managed dan kode asli.
Sistem Kerja C# dapat menyalin jenis yang stabil dengan memcpy dan mentransfer data antara bagian yang dikelola dan asli Unity. Ini menggunakan memcpy
untuk menempatkan data ke dalam memori asli ketika menjadwalkan pekerjaan dan memberikan akses sisi yang dikelola ke salinan itu ketika mengeksekusi pekerjaan. Untuk informasi lebih lanjut, lihat Penjadwalan pekerjaan.
2018–06–15 Sitemap
Sistem Kerja C# terkena Oktober 2018