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?
Chociaż wątki mogą przyspieszyć wykonywanie kodu, czy faktycznie są potrzebne? Czy każdy fragment kodu można wykonać za pomocą jednego wątku, czy też istnieje coś, co można osiągnąć tylko za pomocą wielu 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 …
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 …
Mam prawie 3 lata doświadczenia w pisaniu aplikacji internetowych w Javie przy użyciu frameworków MVC (takich jak struts). Do tej pory nie pisałem kodu wielowątkowego, chociaż napisałem kod dla dużych sieci handlowych. Podczas wywiadów otrzymuję kilka pytań na temat wielowątkowości i zwykle odpowiadam na nie (głównie proste pytania). To mnie …
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 …
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 …
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 …
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, …
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 …
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 …
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. …
Mówię konkretnie o programie C # .NET 4 działającym w systemie Windows XP lub nowszym, ale ogólne odpowiedzi są również dopuszczalne. Załóżmy już zoptymalizowany i wydajny program. Problem polega wyłącznie na skutkach dużego zużycia procesora na sprzęcie i na tym, czy program o dużym zużyciu powinien być ograniczany w celu …
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, …
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 …
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.