Jestem zdezorientowany z opisem thread_localw C ++ 11. Rozumiem, że każdy wątek ma unikalną kopię zmiennych lokalnych w funkcji. Dostęp do zmiennych globalnych / statycznych można uzyskać we wszystkich wątkach (prawdopodobnie dostęp zsynchronizowany za pomocą blokad). A thread_localzmienne są widoczne dla wszystkich wątków, ale mogą być modyfikowane tylko przez wątek, …
W szczególności w Pythonie, w jaki sposób zmienne są udostępniane między wątkami? Chociaż korzystałem threading.Threadwcześniej, nigdy tak naprawdę nie rozumiałem ani nie widziałem przykładów udostępniania zmiennych. Czy są one wspólne dla głównego wątku i dzieci, czy tylko wśród dzieci? Kiedy muszę używać lokalnego magazynu wątków, aby uniknąć tego udostępniania? Widziałem …
[ThreadStatic]jest definiowany przy użyciu atrybutu, podczas gdy ThreadLocal<T>używa generic. Dlaczego wybrano różne rozwiązania projektowe? Jakie są zalety i wady używania atrybutów ogólnych zamiast atrybutów w tym przypadku?
Ile jest odczytywane ze ThreadLocalzmiennej wolniej niż ze zwykłego pola? Bardziej konkretnie, czy proste tworzenie obiektów jest szybsze czy wolniejsze niż dostęp do ThreadLocalzmiennej? Zakładam, że jest na tyle szybki, że posiadanie ThreadLocal<MessageDigest>instancji jest znacznie szybsze niż tworzenie instancji za MessageDigestkażdym razem. Ale czy dotyczy to na przykład bajtu [10] …
Jak zaimplementowano ThreadLocal? Czy jest zaimplementowany w Javie (przy użyciu pewnej współbieżnej mapy z ThreadID do obiektu), czy może używa jakiegoś haka JVM, aby zrobić to bardziej wydajnie?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.