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).

3
Przetwarzanie pojedynczego pliku z wielu procesów
Mam pojedynczy duży plik tekstowy, w którym chcę przetworzyć każdą linię (wykonać pewne operacje) i przechowywać je w bazie danych. Ponieważ pojedynczy prosty program trwa zbyt długo, chcę, aby był wykonywany za pomocą wielu procesów lub wątków. Każdy wątek / proces powinien odczytywać RÓŻNE dane (różne wiersze) z tego pojedynczego …


15
instrukcja „using” vs „try last”
Mam kilka właściwości, na których mam zamiar używać blokad odczytu / zapisu. Mogę je zaimplementować za pomocą klauzuli try finallylub usingklauzuli. W przypadku try finallyzdobycia blokady przed tryi zwolnienia w finally. W usingklauzuli utworzyłbym klasę, która uzyskuje blokadę w swoim konstruktorze i zwalnia w swojej metodzie Dispose. Używam blokad odczytu …

4
Zmień kontrolki WPF z wątku innego niż główny przy użyciu Dispatcher.Invoke
Niedawno zacząłem programować w WPF i napotkałem następujący problem. Nie rozumiem, jak używać tej Dispatcher.Invoke()metody. Mam doświadczenie w tworzeniu wątków i stworzyłem kilka prostych programów Windows Forms, w których właśnie użyłem Control.CheckForIllegalCrossThreadCalls = false; Tak, wiem, że to dość kiepskie, ale były to proste aplikacje monitorujące. Faktem jest, że teraz …

6
Wątek roboczy NSOperation i NSOperationQueue a wątek główny
Muszę przeprowadzić serię operacji pobierania i zapisywania bazy danych w mojej aplikacji. Używam NSOperationi NSOperationQueuedo tego samego. To jest scenariusz aplikacji: Pobierz wszystkie kody pocztowe z miejsca. Dla każdego kodu pocztowego pobierz wszystkie domy. Dla każdego domu należy pobrać dane dotyczące mieszkańców Jak powiedziałem, zdefiniowałem NSOperationdla każdego zadania. W pierwszym …

15
Czy C ++ odczytuje i zapisuje int Atomic?
Mam dwa wątki, jeden aktualizujący int, a drugi czytający. Jest to wartość statystyczna, w przypadku której kolejność odczytów i zapisów nie ma znaczenia. Moje pytanie brzmi, czy mimo wszystko muszę zsynchronizować dostęp do tej wartości wielobajtowej? Innymi słowy, część zapisu może zostać zakończona i przerwana, a następnie nastąpi odczyt. Na …

2
W ArrayBlockingQueue, po co kopiować końcowe pole składowe do lokalnej zmiennej końcowej?
W programie ArrayBlockingQueuewszystkie metody, które wymagają blokady, kopiują ją do finalzmiennej lokalnej przed wywołaniem lock(). public boolean offer(E e) { if (e == null) throw new NullPointerException(); final ReentrantLock lock = this.lock; lock.lock(); try { if (count == items.length) return false; else { insert(e); return true; } } finally { …




8
Wykryto błąd ContextSwitchDeadlock w C #
Uruchamiam aplikację C # i podczas wykonywania otrzymuję następujący błąd: Środowisko CLR nie mogło przejść z kontekstu COM 0x20e480 do kontekstu COM 0x20e5f0 przez 60 sekund. Wątek będący właścicielem kontekstu / apartamentu docelowego najprawdopodobniej albo wykonuje oczekiwanie bez pompowania, albo przetwarza bardzo długotrwałą operację bez pompowania komunikatów systemu Windows. Ta …

1
ThreadPool.QueueUserWorkItem a Task.Factory.StartNew
Jaka jest różnica między poniższymi ThreadPool.QueueUserWorkItem vs Task.Factory.StartNew Jeśli powyższy kod jest wywoływany 500 razy dla jakiegoś długotrwałego zadania, czy oznacza to, że wszystkie wątki puli wątków zostaną zajęte? A może TPL (druga opcja) będzie wystarczająco inteligentna, aby po prostu zajmować wątki mniejsze lub równe liczbie procesorów?

4
Dlaczego Thread nie jest klasą abstrakcyjną, a funkcja start () nie jest ostateczna?
Dlaczego Threadklasa została zaimplementowana jako zwykła klasa, a nie klasa abstrakcyjna z run()metodą abstrakcyjną. Czy może to spowodować jakieś problemy? A może ma to jakiś sens? Ponadto Thread.start()metoda ma być bardzo specyficzną metodą, której funkcjonalności nie może zaimplementować żadna inna klasa (jeśli się nie mylę). Dlatego myślę, że to finalsłowo …

3
Program wielowątkowy utknął w trybie zoptymalizowanym, ale działa normalnie w -O0
Napisałem proste programy wielowątkowe w następujący sposób: static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } Zachowuje się normalnie w trybie debugowania w Visual Studio lub -O0w …

4
Czy wątki są kopiowane podczas wywoływania fork?
Jeśli mam program działający z wątkami i wywołujący fork()system uniksowy, czy wątki są kopiowane? Wiem, że pamięć wirtualna dla bieżącego procesu jest kopiowana 1: 1 do nowego spawnowanego procesu. Wiem, że wątki mają swój własny stos w wirtualnej pamięci procesu. Dlatego przynajmniej stos wątków powinien zostać skopiowany. Nie wiem jednak, …

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.