W .net istnieje "uber", czyli wątkowy magazyn lokalny (TLS), który umożliwia dowolne "przeskakiwanie" dowolnych danych TLS z jednego wątku do drugiego . Opiera się na CallContext class.Co to jest odpowiednik języka Java w języku C# "Kontekst połączenia logicznego"
Innymi słowy, logiczne żądanie może utworzyć hierarchię nowych wątków - i każdy z tych wątków będzie miał dostęp do tego samego TLS oryginalnego wątku. Jest to bardzo ważna funkcja, szczególnie w przypadku rejestrowania, autoryzacji, wielokrotnego wynajmu lub problemów związanych z brandingiem.
Co to jest odpowiednik w Javie?
Tylko w .net 4.5 has the "logical callcontext" gained a "copy on write" capability, która umożliwia wątkom dokonywanie prywatnych modyfikacji logicznego wywołania połączenia. Innymi słowy, .net wciąż dojrzewa tę zdolność i zapewnia większą stabilność.
Jeśli Java ma równoważne pojęcie, jak jest stabilny? Jakie to ma problemy?
Wyjaśnienie
już wiem, że Java ma pamięć lokalna wątku (TLS) zdolności. To nie jest pytanie. Pytam, czy Java ma odpowiednik "logicznego kontekstu wywołania" .NET, który jest znacznie potężniejszą konstrukcją niż prosty TLS.
Interesujące pytanie. Niestety, myślę, że nie masz szczęścia.Zgodnie z moją wiedzą nie ma takiej funkcji w Javie. Byłbym szczęśliwy, gdyby mnie poprawiono i uczyłem się czegoś nowego. –
Po prostu pytanie do wyjaśnienia - jeśli "oryginalny wątek" w twoim przykładzie zmienia dane TLS, czy wątki podrzędne widzą zaktualizowaną wartość? Np. Wątek podrzędny, aby nie tylko uzyskać kopię, mają podgląd na żywo nadrzędnego TLS? –
Nie ma oficjalnej asynchronicznej obsługi w JDK. Nie jest jednak trudno tworzyć własne (bez składni na poziomie języka). Na przykład moje [Fibre i FibreLocal] (http://bayou.io/release/0.9/docs/async/Async_Programming.html#Fiber) – ZhongYu