Saya membaca tentang const dan keamanan utas di C++11, berikut adalah Stack Overflow yang relevan pertanyaan, dan ini juga video oleh Herb Sutter. Kata "sinkronisasi" sering disebutkan. Tapi apa arti sebenarnya dari "sinkronisasi"?

Misalnya, dua baris berikut berasal dari video Herb

"menyalin dari objek yang sama dalam beberapa utas tanpa sinkronisasi" (pada 13:40)

"... Objek const sepenuhnya aman (benar-benar tidak dapat diubah atau disinkronkan secara internal)" (pada 15:03)

1
Allanqunzi 15 Mei 2015, 06:48

1 menjawab

Jawaban Terbaik

Sinkronisasi berarti berbagi sumber daya antara utas dan proses tanpa mengarah pada perlombaan di sekitar kondisi dan kunci mati.

Tanpa sinkronisasi dalam pernyataan pertama berarti itu tidak mengunci sumber daya dan membukanya ketika selesai.

Dalam pernyataan kedua dia bermaksud mengatakan karena ini adalah objek const, ia tidak dapat dimodifikasi dan karenanya tidak dapat diubah dan tidak memerlukan sinkronisasi.

Sebuah studi tentang teknik sinkronisasi thread menggunakan Mutex dan Semaphore akan membantu Anda lebih memahami mengapa hal itu diperlukan dan bagaimana hal itu dilakukan.

4
Vinay Shukla 15 Mei 2015, 07:46
Apa yang Anda maksud dengan "tidak mengunci sumber daya dan membukanya setelah selesai"?
 – 
Allanqunzi
15 Mei 2015, 07:48
Objek mutex yang direferensikan oleh mutex dikunci dengan memanggil pthread_mutex_lock() dan yang sama dipanggil sebelum mengakses sumber daya bersama setelah selesai Anda memanggil pthread_mutex_unlock()
 – 
Vinay Shukla
15 Mei 2015, 07:52
Aku masih tidak bisa mendapatkannya. Di sini, di pernyataan pertama, Sutter tidak menyebutkan tentang mutex. Dan Anda mengatakan "tidak mengunci" dan "membuka", jika "tidak mengunci" bagaimana Anda bisa "membuka" itu?
 – 
Allanqunzi
15 Mei 2015, 18:39
Itulah yang saya katakan, silakan baca dengan seksama. Tanpa sinkronisasi berarti dia tidak menggunakan mutex yaitu dia tidak melakukan penguncian dan pembukaan kunci pada sumber daya sebelum menggunakan sumber daya dan ketika itu dilakukan masing-masing.
 – 
Vinay Shukla
17 Mei 2015, 20:46