Pytania otagowane jako multithreading

Wielowątkowość to zdolność komputera lub programu do wykonywania pracy jednocześnie lub asynchronicznie poprzez wykorzystanie wielu współbieżnych strumieni wykonania (ogólnie nazywanych wątkami).

6
Co dzieje się z odłączonym wątkiem po zakończeniu działania funkcji main ()?
Załóżmy, że zaczynam std::threada detach(), więc wątek kontynuuje wykonywanie, mimo że ten, std::threadktóry kiedyś go reprezentował, wykracza poza zakres. Załóżmy ponadto, że program nie ma niezawodnego protokołu do przyłączania się do odłączonego wątku 1 , więc odłączony wątek nadal działa po zakończeniu main(). Nie mogę znaleźć niczego w standardzie (a …

13
Czy num ++ może być atomowe dla „int num”?
Ogólnie rzecz biorąc, for int num, num++(lub ++num), jako operacja odczytu-modyfikacji-zapisu, nie jest atomowa . Ale często widzę kompilatory, na przykład GCC , generują dla niego następujący kod ( spróbuj tutaj ): Ponieważ wiersz 5, który odpowiada, num++jest jedną instrukcją, czy możemy wywnioskować, że w tym przypadku num++ jest atomowa …

9
Najlepsza praktyka: AsyncTask podczas zmiany orientacji
AsyncTask wykonywanie złożonych zadań w innym wątku to świetna sprawa. Ale gdy nastąpi zmiana orientacji lub inna zmiana konfiguracji, gdy AsyncTasknadal działa, prąd Activityjest niszczony i restartowany. Ponieważ instancja programu AsyncTaskjest połączona z tym działaniem, kończy się niepowodzeniem i powoduje wyświetlenie okna komunikatu „wymuś zamknięcie”. Dlatego szukam jakiejś „najlepszej praktyki”, …

5
Concurrent HashSet <T> w .NET Framework?
Mam następującą klasę. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); } Muszę zmienić pole „Dane” z różnych wątków, więc chciałbym poznać opinie na temat mojej obecnej implementacji bezpiecznej wątkowo. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); public void Add(string Val){ lock(Data) Data.Add(Val); } public void Remove(string Val){ lock(Data) …


6
Kiedy używać enumerateObjectsUsingBlock, a kiedy for
Oprócz oczywistych różnic: Użyj, enumerateObjectsUsingBlockgdy potrzebujesz zarówno indeksu, jak i obiektu Nie używaj, enumerateObjectsUsingBlockgdy musisz zmodyfikować zmienne lokalne (myliłem się, zobacz odpowiedź bbum) Czy enumerateObjectsUsingBlockogólnie uważa się, że lepiej czy gorzej, kiedy for (id obj in myArray)również zadziała? Jakie są zalety / wady (na przykład czy jest bardziej lub mniej …



5
Czy niezsynchronizowane metody statyczne są bezpieczne wątkowo, jeśli nie modyfikują statycznych zmiennych klas?
Zastanawiałem się, czy masz metodę statyczną, która nie jest zsynchronizowana, ale nie modyfikuje żadnych zmiennych statycznych, czy jest bezpieczna wątkowo? A co jeśli metoda tworzy w niej zmienne lokalne? Na przykład, czy poniższy kod jest bezpieczny dla wątków? public static String[] makeStringArray( String a, String b ){ return new String[]{ …


11
Czekam na listę Future
Mam metodę, która zwraca wartość Listprzyszłości List&lt;Future&lt;O&gt;&gt; futures = getFutures(); Teraz chcę poczekać, aż wszystkie futures zostaną pomyślnie przetworzone lub którekolwiek z zadań, których dane wyjściowe zostaną zwrócone przez przyszłość, zgłosi wyjątek. Nawet jeśli jedno zadanie rzuca wyjątek, nie ma sensu czekać na inną przyszłość. Byłoby proste podejście wait() { …

26
Podjęto próbę odczytania lub zapisu chronionej pamięci. Często wskazuje to na uszkodzenie innej pamięci
Mam nadzieję, że ktoś może mnie oświecić, co może być przyczyną tego błędu: Podjęto próbę odczytania lub zapisu chronionej pamięci. Często wskazuje to na uszkodzenie innej pamięci. Naprawdę nie mogę wysłać kodu, ponieważ ten błąd wydaje się być wyrzucany w dowolnym przypadkowym obszarze aplikacji. Aplikacja będzie działać w dowolnym miejscu …




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.