Kiedy powinienem użyć ThreadLocalzmiennej? Jak to jest
Kiedy powinienem użyć ThreadLocalzmiennej? Jak to jest
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ą...
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...
[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...
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?