Jeśli spojrzysz na dokumentację opisującą użycie zmiennych warunkowych (cv), zobaczysz np. w PThreadach i C++ nie trzeba trzymać muteksu cv, aby wywołać powiadomienie na tym cv. Np. w Javie i Pythonie musisz zablokować muteks, aby zrobić to samo.Zmienny schemat użycia warunku w C/C++ i innych językach
Czy istnieje jakiś głęboki powód, dla którego rzeczy są realizowane w ten sposób (mam na myśli ten drugi przypadek), zważywszy, że implementacja języka takiego jak Java ostatecznie wykorzystuje niektóre narzędzia macierzystego wątkowania?
Prawdopodobnie nie jest zaimplementowany tylko na podstawie pthreadów ... ale to tylko założenie. Czuję, że to pytanie może się polepszyć (lub nawet * dowolne *) odpowiedzi na http://cs.stackexchange.com/ ... –
Oczywiście JVM może to zaimplementować w taki sposób, ale powoduje to powszechny błąd, który widziałem wiele, wiele osób robi w języku C++ znacznie mniej prawdopodobne przy rozsądnie niskim koszcie (trzeba przytrzymać blokadę nieco dłużej, ale to wszystko). – Voo
@Voo Błąd polegający na tym, że muteks nie jest trzymany podczas modyfikowania danych, od których zależy warunek? – vehsakul