Pytania otagowane jako multithreading

Pytania dotyczące wielowątkowości, w tym kwestie dotyczące techniki, struktury i bezpieczeństwa.

3
Dlaczego Python został napisany za pomocą GIL?
Globalna blokada interpretera (GIL) wydaje się często cytowana jako główny powód, dla którego wątki i tym podobne są trudne w Pythonie - co rodzi pytanie „Dlaczego tak się stało?” Nie będąc programistą, nie mam pojęcia, dlaczego tak się dzieje - jaka była logika wprowadzenia GIL?


4
Co to jest pula wątków?
Jak wdrożyć pulę wątków? Czytałem na Wikipedii „pula wątków”, ale nadal nie mogę się dowiedzieć, co należy zrobić, aby rozwiązać to pytanie (być może dlatego, że nie do końca rozumiem, co to jest pula wątków). Czy ktoś może mi wyjaśnić prostym językiem angielskim, czym jest pula wątków i jak można …

3
Jak działa pojedynczy wątek na wielu rdzeniach?
Próbuję zrozumieć na wysokim poziomie, w jaki sposób pojedyncze wątki przebiegają przez wiele rdzeni. Poniżej znajduje się moje najlepsze zrozumienie. Nie sądzę jednak, aby było to poprawne. Na podstawie mojego czytania hiperwątkowości wydaje się, że system operacyjny porządkuje instrukcje wszystkich wątków w taki sposób, że nie czekają na siebie. Następnie …


1
Czy istnieje różnica między włóknami, rogówkami a zielonymi nićmi, a jeśli tak, to na czym to polega?
Dzisiaj czytałem w Internecie kilka artykułów o włóknach, koronach i zielonych niciach i wydaje się, że te koncepcje mają ze sobą wiele wspólnego, ale istnieją niewielkie różnice, szczególnie gdy mówimy o włóknach i koronach. Czy istnieje zwięzłe, prawidłowe podsumowanie tego, co je różni? Aktualizacja: Uważam, że dokument Wyróżniające się coroutines …

12
Dlaczego program wymagałby określonej minimalnej liczby rdzeni procesora?
Czy jest możliwe napisanie kodu (lub kompletnego oprogramowania zamiast fragmentu kodu), który nie będzie działał poprawnie, jeśli zostanie uruchomiony na procesorze, który ma mniej niż N liczby rdzeni? Bez wyraźnego sprawdzenia i celowego niepowodzenia: JEŻELI (noOfCores <4) NASTĘPNIE nie działają poprawnie celowo Patrzę na minimalne wymagania systemowe gry ( Dragon …

6
Testowanie wyścigów wielowątkowych
Czytanie komentarzy do tej odpowiedzi , w szczególności: To, że nie możesz napisać testu, nie oznacza, że ​​nie jest zepsuty. Niezdefiniowane zachowanie, które zwykle działa zgodnie z oczekiwaniami (C i C ++ są tego pełne), warunki wyścigu, potencjalne zmiany kolejności z powodu słabego modelu pamięci ... - CodesInChaos 7 godzin …

16
Czy powinienem zadbać o warunki wyścigowe, które prawie na pewno nie mają szans?
Rozważmy coś w rodzaju aplikacji GUI, w której główny wątek aktualizuje interfejs użytkownika niemal natychmiast, a jakiś inny wątek odpytuje dane w sieci lub coś, co gwarantuje, że ukończenie zadania zajmie 5–10 sekund. Otrzymałem na to wiele różnych odpowiedzi, ale niektórzy twierdzą, że jeśli jest to wyścigowy warunek statystycznej niemożliwości, …

8
Jakie są wady tworzenia wielowątkowej implementacji środowiska wykonawczego JavaScript? [Zamknięte]
Przez ostatni tydzień pracowałem nad wielowątkową implementacją środowiska wykonawczego JavaScript. Mam dowód koncepcji wykonany w C ++ przy użyciu JavaScriptCore i boost. Architektura jest prosta: gdy środowisko wykonawcze zakończy ocenę skryptu głównego, uruchamia się i dołącza do puli wątków, która rozpoczyna pobieranie zadań ze wspólnej kolejki priorytetowej, jeśli dwa zadania …

19
Obsługa zadań w tle w dużej witrynie
Mamy do czynienia z interesującym problemem na StackOverflow. Mamy całą masę drobnych „zadań do zrobienia wkrótce”. Przykładem jest aktualizacja list „Podobne pytania”. To, co zrobiliśmy w przeszłości, polega na nałożeniu tych zadań na obciążenia niektórych użytkowników. To nigdy nie było idealne, ale tak naprawdę nie było zauważalne. Teraz, gdy SO …

1
Czy baseny goroutine z Go-Lang są tylko zielonymi nitkami?
Komentator tutaj oferuje następujące krytykę zielonych wątków: Początkowo zostałem sprzedany w modelu N: M jako środek programowania sterowanego zdarzeniami bez piekła zwrotnego. Możesz pisać kod, który wygląda jak stary kod proceduralny, ale pod nim jest magia, która używa przełączania zadań w przestrzeni użytkownika, gdy tylko coś się zablokuje. Brzmi wspaniale. …


5
Czy niezmienność całkowicie eliminuje potrzebę blokowania w programowaniu wieloprocesorowym?
Część 1 Oczywiście niezmienność minimalizuje potrzebę blokowania w programowaniu wieloprocesorowym, ale czy eliminuje tę potrzebę, czy też są przypadki, w których sama niezmienność nie wystarczy? Wydaje mi się, że można jedynie odroczyć przetwarzanie i enkapsulować stan tak długo, zanim większość programów będzie musiała coś ZROBIĆ (zaktualizować magazyn danych, wygenerować raport, …

4
Dlaczego obowiązkiem osoby dzwoniącej jest zapewnienie bezpieczeństwa wątków w programowaniu GUI?
Widziałem w wielu miejscach, że zgodnie z mądrością kanoniczną 1 dzwoniący jest odpowiedzialny za upewnienie się, że jesteś w wątku interfejsu użytkownika podczas aktualizacji składników interfejsu użytkownika (w szczególności w Java Swing, że jesteś w wątku wysyłki zdarzeń ) . Dlaczego tak jest? Nić Event Dispatch jest troska o widoku …

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.