Pytania otagowane jako concurrency

W informatyce współbieżność jest właściwością systemów, w których można wykonać wiele obliczeń w nakładających się okresach. Obliczenia mogą być wykonywane na wielu rdzeniach w tym samym układzie, zapobiegawczo podzielonych czasowo wątkach na tym samym procesorze lub wykonywane na fizycznie oddzielonych procesorach.

5
Kiedy używać lotnych przy wielowątkowości?
Jeśli istnieją dwa wątki uzyskujące dostęp do zmiennej globalnej, wiele samouczków mówi, że zmienna jest ulotna, aby zapobiec buforowaniu zmiennej przez kompilator w rejestrze, a tym samym niepoprawnej aktualizacji. Jednak dwa wątki, które uzyskują dostęp do wspólnej zmiennej, są czymś, co wymaga ochrony przez mutex, prawda? Ale w takim przypadku …

12
Jak asynchronicznie wywołać metodę w Javie
Ostatnio przyglądałem się gorutynom Go i pomyślałem, że fajnie byłoby mieć coś podobnego w Javie. O ile szukałem, powszechnym sposobem zrównoleglenia wywołania metody jest zrobienie czegoś takiego: final String x = "somethingelse"; new Thread(new Runnable() { public void run() { x.matches("something"); } }).start(); To niezbyt eleganckie. Czy jest lepszy sposób …

13
Nie można utworzyć buforowanej puli wątków z ograniczeniem rozmiaru?
Wydaje się, że niemożliwe jest utworzenie buforowanej puli wątków z ograniczeniem liczby wątków, które może ona utworzyć. Oto jak static Executors.newCachedThreadPool jest zaimplementowane w standardowej bibliotece Java: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } Tak więc, używając tego szablonu do utworzenia puli wątków …


5
Jak używać właściwości CancellationToken?
W porównaniu z poprzednim kodem dla klasy RulyCanceler , chciałem uruchomić kod przy użyciu CancellationTokenSource. Jak go używać, jak wspomniano w tokenach anulowania , tj. Bez rzucania / łapania wyjątku? Czy mogę korzystać z IsCancellationRequestednieruchomości? Próbowałem tego użyć w ten sposób: cancelToken.ThrowIfCancellationRequested(); i try { new Thread(() => Work(cancelSource.Token)).Start(); } …

6
Kolejki równoległe i szeregowe w GCD
Staram się w pełni zrozumieć kolejki równoległe i szeregowe w GCD. Mam pewne problemy i mam nadzieję, że ktoś może mi odpowiedzieć jasno i na temat. Czytam, że kolejki szeregowe są tworzone i używane do wykonywania zadań jedna po drugiej. Jednak co się stanie, jeśli: Tworzę kolejkę szeregową Używam dispatch_async(w …

6
AtomicInteger lazySet vs. set
Jaka jest różnica między metodami lazySeti ? Dokumentacji nie ma wiele do powiedzenia na temat :setAtomicIntegerlazySet Ostatecznie ustawia się na podaną wartość. Wydaje się, że przechowywana wartość nie zostanie natychmiast ustawiona na żądaną wartość, ale zamiast tego zostanie zaplanowana do ustawienia w przyszłości. Ale jakie jest praktyczne zastosowanie tej metody? …
116 java  concurrency  atomic 


5
LinkedBlockingQueue vs ConcurrentLinkedQueue
Moje pytanie dotyczy tego pytania zadanego wcześniej. W sytuacjach, w których używam kolejki do komunikacji między wątkami producenta i konsumenta, czy ludzie ogólnie zalecają używanie LinkedBlockingQueuelub ConcurrentLinkedQueue? Jakie są zalety / wady używania jednego nad drugim? Główną różnicą, którą widzę z perspektywy API, jest to, że LinkedBlockingQueuemoże być opcjonalnie ograniczony.

7
Co byłoby lepsze w przypadku współbieżnych zadań na node.js? Włókna? Pracownicy sieciowi? lub Wątki?
Natknąłem się kiedyś na node.js i bardzo to lubię. Ale wkrótce okazało się, że bardzo brakowało mu możliwości wykonywania zadań intensywnie wykorzystujących procesor. Więc zacząłem googlować i otrzymałem te odpowiedzi, aby rozwiązać problem: Włókna, Webworkers i Wątki (thread-a-gogo). Który z nich jest mylący, a jeden z nich zdecydowanie musi być …

4
Czy lotność jest droga?
Po przeczytaniu książki kucharskiej JSR-133 dla autorów kompilatorów o implementacji ulotnych, szczególnie sekcji "Interakcje z instrukcjami Atomic", zakładam, że odczyt zmiennej ulotnej bez aktualizacji wymaga LoadLoad lub bariery LoadStore. W dalszej części strony widzę, że LoadLoad i LoadStore skutecznie nie działają na procesorach X86. Czy to oznacza, że ​​ulotne operacje …



4
Różnica między DispatchQueue.main.async i DispatchQueue.main.sync
Od dawna używam DispatchQueue.main.asyncdo wykonywania operacji związanych z interfejsem użytkownika. Swift zapewnia zarówno DispatchQueue.main.asynci DispatchQueue.main.sync, jak i oba są wykonywane w głównej kolejce. Czy ktoś może mi powiedzieć, jaka jest między nimi różnica? Kiedy powinienem używać każdego? DispatchQueue.main.async { self.imageView.image = imageView self.lbltitle.text = "" } DispatchQueue.main.sync { self.imageView.image = …


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.