Synchronizacja odnosi się do używania elementów sterujących w celu utrzymania spójnej reprezentacji grupy procesów uruchamiających ten sam program (synchronizacja procesów) lub reprezentacji danych (synchronizacja danych).
Widzę, że w przypadku używania obiektów, które nie są bezpieczne dla wątków, kod zamykamy w taki sposób: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Co dzieje się, gdy wiele wątków uzyskuje dostęp do tego samego kodu (załóżmy, że działa on w …
Za każdym razem, gdy pojawia się pytanie na temat SO dotyczące synchronizacji Java, niektórzy bardzo chętnie wskazują, że synchronized(this)należy tego unikać. Zamiast tego twierdzą, że preferowana jest blokada prywatnego odwołania. Niektóre z podanych powodów to: jakiś zły kod może ukraść twoją blokadę (bardzo popularny ten, ma również wariant „przypadkowo”) wszystkie …
Czy c # ma własną wersję słowa kluczowego „synchronizowane” java? Tj. W java można określić funkcję, obiekt lub blok kodu, na przykład: public synchronized void doImportantStuff() { // dangerous code goes here. } lub public void doImportantStuff() { // trivial stuff synchronized(someLock) { // dangerous code goes here. } }
Jak atomowy / lotny / zsynchronizowany działa wewnętrznie? Jaka jest różnica między następującymi blokami kodu? Kod 1 private int counter; public int getNextUniqueIndex() { return counter++; } Kod 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Kod 3 private volatile int counter; public int getNextUniqueIndex() { return …
Czy @synchronized nie używa „blokady” i „odblokowania” do osiągnięcia wzajemnego wykluczenia? Jak to się wtedy blokuje / odblokowuje? Wyjście następującego programu to tylko „Hello World”. @interface MyLock: NSLock<NSLocking> @end @implementation MyLock - (id)init { return [super init]; } - (void)lock { NSLog(@"before lock"); [super lock]; NSLog(@"after lock"); } - (void)unlock …
java.util.concurrentInterfejs API zapewnia klasę o nazwie as Lock, która w zasadzie serializowałaby kontrolę w celu uzyskania dostępu do zasobu krytycznego. Daje metodę taką jak park()i unpark(). Możemy zrobić podobne rzeczy, jeśli możemy użyć synchronizedsłowa kluczowego oraz użycia wait()i notify() notifyAll()metod. Zastanawiam się, który z nich jest lepszy w praktyce i …
Jeśli mam klasę util ze statycznymi metodami, które będą wywoływać funkcje Hibernate w celu uzyskania podstawowego dostępu do danych. Zastanawiam się, czy wykonanie tej metody synchronizedjest właściwym podejściem do zapewnienia bezpieczeństwa nici. Chcę, aby to uniemożliwiło dostęp do informacji do tej samej instancji bazy danych. Jednak jestem teraz pewien, czy …
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 4 miesiące temu . Popraw to pytanie Jestem nowy w wielowątkowości i próbowałem zrozumieć, jak działają muteksy. Dużo szukałem w Google, ale nadal …
Czy ktoś może wyjaśnić różnicę między: lock (someobject) {} Korzystanie z Mutex Korzystanie z semafora Korzystanie z monitora Korzystanie z innych klas synchronizacji .Net Po prostu nie mogę tego rozgryźć. Wydaje mi się, że pierwsze dwa są takie same?
Używam bloku kodu statycznego do zainicjowania niektórych kontrolerów w rejestrze, który mam. Moje pytanie brzmi zatem, czy mogę zagwarantować, że ten statyczny blok kodu zostanie wywołany tylko raz, gdy klasa zostanie po raz pierwszy załadowana? Rozumiem, że nie mogę zagwarantować, kiedy ten blok kodu zostanie wywołany, zgaduję, że kiedy Classloader …
Czy to prawda, że C ++ 0x przyjdzie bez semaforów? Istnieje już kilka pytań dotyczących przepełnienia stosu dotyczących używania semaforów. Używam ich (semaforów posix) cały czas, aby pozwolić wątkowi czekać na jakieś zdarzenie w innym wątku: void thread0(...) { doSomething0(); event1.wait(); ... } void thread1(...) { doSomething1(); event1.post(); ... } …
Wiem, że użycie synchronizesłowa kluczowego przed metodą powoduje synchronizację z tym obiektem. Oznacza to, że zostaną zsynchronizowane 2 wątki z tym samym wystąpieniem obiektu. Ponieważ jednak synchronizacja jest na poziomie obiektu, 2 wątki z różnymi instancjami obiektu nie zostaną zsynchronizowane. Jeśli w klasie Java mamy zmienną statyczną, która jest wywoływana …
W porównaniu z poprzednim kodem dla klasy RulyCanceler , chciałem uruchomić kod przy użyciu CancellationTokenSource. Jak go używać, jak wspomniano w tokenach anulowania , tj. Bez rzucania / łapania wyjątku? Czy mogę korzystać z IsCancellationRequestednieruchomości? Próbowałem tego użyć w ten sposób: cancelToken.ThrowIfCancellationRequested(); i try { new Thread(() => Work(cancelSource.Token)).Start(); } …
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.