|
Oldingi misolda biz atomik amallar yordamida oddiy hisoblagich holatini qanday boshqarishni ko’rdik. Murakkabroq holat uchun bir nechta goroutina orasida ma’lumotlarga xavfsiz kirish uchun mutex dan foydalanishimiz mumkin. |
|
![]()
|
|
|
|
|
Container hisoblagichlar map ini saqlaydi; biz uni bir
nechta goroutinadan parallel yangilamoqchi bo’lganimiz uchun
kirishni sinxronlash maqsadida |
|
|
|
|
|
|
|
E’tibor bering, mutex ning nol qiymati o’zicha ishlatsa bo’ladi, shuning uchun bu yerda ishga tushirish talab etilmaydi. |
|
|
|
|
|
|
Bu funksiya nomlangan hisoblagichni siklda oshiradi. |
|
|
Bir nechta goroutinani parallel ishga tushiramiz; e’tibor
bering, ularning barchasi bir xil |
|
|
|
|
|
|
Goroutinalar tugashini kutamiz |
|
|
Dasturni ishga tushirish hisoblagichlar kutilganidek yangilanganini ko’rsatadi. |
|
|
Keyingi navbatda biz xuddi shu holatni boshqarish vazifasini faqat goroutinalar va kanallar yordamida amalga oshirishni ko’rib chiqamiz. |
Keyingi misol: Stateful Goroutines.