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

13
Czy słowo kluczowe volatile w C ++ wprowadza ogrodzenie pamięci?
Rozumiem, że volatileinformuje kompilator, że wartość może ulec zmianie, ale czy aby wykonać tę funkcję, kompilator musi wprowadzić ogrodzenie pamięci, aby działało? Z mojego zrozumienia, sekwencji operacji na obiektach ulotnych nie można zmienić i należy ją zachować. Wydaje się to sugerować, że niektóre ogrodzenia pamięci są konieczne i nie ma …

6
Czy zablokowany obiekt pozostaje zablokowany, jeśli wystąpi w nim wyjątek?
W aplikacji do obsługi wątków ac #, jeśli miałbym zablokować obiekt, powiedzmy, że jest to kolejka, a jeśli wystąpi wyjątek, czy obiekt pozostanie zablokowany? Oto pseudokod: int ii; lock(MyQueue) { MyClass LclClass = (MyClass)MyQueue.Dequeue(); try { ii = int.parse(LclClass.SomeString); } catch { MessageBox.Show("Error parsing string"); } } Jak rozumiem, kod …


11
Jak uzyskać identyfikator wątku w postaci liczby całkowitej w języku C ++ 11
c ++ 11 ma możliwość pobrania bieżącego id wątku, ale nie można go rzutować na typ całkowity: cout<<std::this_thread::get_id()<<endl; wyjście: 139918771783456 cout<<(uint64_t)std::this_thread::get_id()<<endl; błąd: nieprawidłowe rzutowanie z typu „std :: thread :: id” do typu „uint64_t” to samo dla innych typów: nieprawidłowe rzutowanie z typu „std :: thread :: id” do typu …

6
Jak sprawdzić, czy nadal działa std :: thread?
Jak mogę sprawdzić, czy std::threadnadal działa (w sposób niezależny od platformy)? Brakuje mu timed_join()metody i joinable()nie jest do tego przeznaczona. Myślałem o zablokowaniu muteksu za pomocą a std::lock_guardw wątku i użyciu try_lock()metody muteksu w celu określenia, czy nadal jest zablokowany (wątek działa), ale wydaje mi się to niepotrzebnie skomplikowane. Czy …

4
WebBrowser Control w nowym wątku
Mam listę Uri, które chcę „kliknąć” Aby to osiągnąć, próbuję utworzyć nową kontrolkę przeglądarki internetowej na Uri. Tworzę nowy wątek na Uri. Problemem jest koniec wątku przed dokumentem jest w pełni załadowany, więc nigdy nie mogę skorzystać ze zdarzenia DocumentComplete. Jak mogę to przezwyciężyć? var item = new ParameterizedThreadStart(ClicIt.Click); var …

5
Współbieżny słownik Prawidłowe użycie
Czy mam rację sądząc, że jest to właściwe użycie słownika współbieżnego private ConcurrentDictionary<int,long> myDic = new ConcurrentDictionary<int,long>(); //Main thread at program startup for(int i = 0; i < 4; i++) { myDic.Add(i, 0); } //Seperate threads use this to update a value myDic[InputID] = newLongValue; Nie mam blokad itp. I …


5
Używanie zmiennej globalnej z wątkiem
Jak udostępnić zmienną globalną wątkowi? Mój przykład kodu w Pythonie to: from threading import Thread import time a = 0 #global variable def thread1(threadname): #read variable "a" modify by thread 2 def thread2(threadname): while 1: a += 1 time.sleep(1) thread1 = Thread( target=thread1, args=("Thread-1", ) ) thread2 = Thread( target=thread2, …

4
Jak zaktualizować ObservableCollection za pośrednictwem wątku roboczego?
Mam ObservableCollection<A> a_collection;. Kolekcja zawiera „n” elementów. Każdy element A wygląda następująco: public class A : INotifyPropertyChanged { public ObservableCollection<B> b_subcollection; Thread m_worker; } Zasadniczo wszystko jest podłączone do widoku listy WPF + kontrolka widoku szczegółów, która pokazuje b_subcollectionwybrany element w oddzielnym widoku listy (powiązania dwukierunkowe, aktualizacje w ramach zmiany …

5
Wywołanie metody w głównym wątku?
Przede wszystkim piszę kod na iPhone'a. Muszę mieć możliwość wywołania metody w głównym wątku bez użycia performSelectorOnMainThread. Powodem, którego nie chcę używać, performSelectorOnMainThreadjest to, że powoduje to problem, gdy próbuję utworzyć makietę do testów jednostkowych. [self performSelectorOnMainThread:@Selector(doSomething) withObject:nil]; Problem polega na tym, że mój makieta wie, jak dzwonić, doSomethingale nie …

4
Biorąc pod uwagę, że HashMapy w jdk1.6 i nowszych powodują problemy z wielowątkowością, jak mam naprawić mój kod
Niedawno zadałem pytanie w stackoverflow, a potem znalazłem odpowiedź. Początkowe pytanie brzmiało: Jakie mechanizmy inne niż muteksy lub czyszczenie pamięci mogą spowolnić mój wielowątkowy program Java? Ku mojemu przerażeniu odkryłem, że HashMap został zmodyfikowany między JDK1.6 a JDK1.7. Ma teraz blok kodu, który powoduje synchronizację wszystkich wątków tworzących HashMaps. Wiersz …

3
Uzyskaj status std :: future
Czy można sprawdzić, czy std::futureskończył się, czy nie? O ile wiem, jedynym sposobem byłoby zadzwonić wait_forz zerowym czasem trwania i sprawdzić, czy status jest, readyczy nie, ale czy jest lepszy sposób?


10
Nie można wywołać Invoke lub BeginInvoke w kontrolce, dopóki nie zostanie utworzony uchwyt okna
Mam metodę rozszerzenia SafeInvoke Control podobną do tej, którą omawia tutaj Greg D (bez czeku IsHandleCreated). Wołam to z System.Windows.Forms.Formnastępującego adresu: public void Show(string text) { label.SafeInvoke(()=>label.Text = text); this.Show(); this.Refresh(); } Czasami (to wywołanie może pochodzić z różnych wątków) powoduje to następujący błąd: System.InvalidOperationException wystąpił Message= "Invoke lub BeginInvoke …

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.