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).
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 …
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 …
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 …
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 …
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 …
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 …
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, …
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 …
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 …
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 …
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?
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 …
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.