Pytania otagowane jako thread-safety

Fragment kodu jest bezpieczny dla wątków, jeśli tylko manipuluje strukturami danych w sposób, który umożliwia spójne wykonywanie tego kodu przez wiele wątków. Kod może być bezpieczny wątkowo, warunkowo bezpieczny (wymagane wzajemne wykluczanie) lub niebezpieczny (może być bezpiecznie używany tylko przez jeden wątek).

11
Co oznacza Threadafe?
Niedawno próbowałem uzyskać dostęp do pola tekstowego z wątku (innego niż wątek interfejsu użytkownika) i został zgłoszony wyjątek. Mówił coś o tym, że „kod nie jest bezpieczny dla wątków”, więc napisałem delegata (pomógł przykład z MSDN) i wywołałem go. Ale mimo to nie bardzo rozumiałem, dlaczego cały dodatkowy kod był …

15
Właściwość List <T> bezpieczna wątkowo
Chcę implementacji List&lt;T&gt;jako właściwości, której można bez wątpienia bezpiecznie używać. Coś takiego: private List&lt;T&gt; _list; private List&lt;T&gt; MyT { get { // return a copy of _list; } set { _list = value; } } Wygląda na to, że nadal muszę zwrócić kopię (sklonowaną) kolekcji, więc jeśli gdzieś iterujemy kolekcję …



8
Jaki jest najlepszy sposób implementacji słownika bezpiecznego dla wątków?
Udało mi się zaimplementować słownik bezpieczny dla wątków w C #, wyprowadzając z IDictionary i definiując prywatny obiekt SyncRoot: public class SafeDictionary&lt;TKey, TValue&gt;: IDictionary&lt;TKey, TValue&gt; { private readonly object syncRoot = new object(); private Dictionary&lt;TKey, TValue&gt; d = new Dictionary&lt;TKey, TValue&gt;(); public object SyncRoot { get { return syncRoot; } …


3
Bezpieczeństwo wątków w słowniku Pythona
Mam klasę, która zawiera słownik class OrderBook: orders = {'Restaurant1': None, 'Restaurant2': None, 'Restaurant3': None, 'Restaurant4': None} @staticmethod def addOrder(restaurant_name, orders): OrderBook.orders[restaurant_name] = orders Uruchamiam 4 wątki (po jednym dla każdej restauracji), które wywołują metodę OrderBook.addOrder. Oto funkcja uruchamiana przez każdy wątek: def addOrders(restaurant_name): #creates orders ... OrderBook.addOrder(restaurant_name, orders) Czy …

2
Czy wątek SecureRandom jest bezpieczny?
Czy SecureRandomwątek jest bezpieczny? To znaczy, czy po jego zainicjowaniu można polegać na dostępie do następnej liczby losowej, aby był bezpieczny dla wątków? Badanie kodu źródłowego wydaje się wskazywać, że tak jest, a ten raport o błędzie wydaje się wskazywać, że brak dokumentacji jako bezpiecznej dla wątków jest problemem javadoc. …

3
Czy zmienne globalne są bezpieczne dla wątków w Flask? Jak udostępniać dane między żądaniami?
W mojej aplikacji stan wspólnego obiektu jest zmieniany poprzez wysyłanie żądań, a odpowiedź zależy od stanu. class SomeObj(): def __init__(self, param): self.param = param def query(self): self.param += 1 return self.param global_obj = SomeObj(0) @app.route('/') def home(): flash(global_obj.query()) render_template('index.html') Jeśli uruchomię to na moim serwerze deweloperskim, spodziewam się uzyskać 1, …

4
iphone ios działa w osobnym wątku
Jaki jest najlepszy sposób uruchamiania kodu w oddzielnym wątku? Czy to: [NSThread detachNewThreadSelector: @selector(doStuff) toTarget:self withObject:NULL]; Lub: NSOperationQueue *queue = [NSOperationQueue new]; NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(doStuff:) object:nil; [queue addOperation:operation]; [operation release]; [queue release]; Robiłem drugi sposób, ale książka Wesley Cookbook, którą czytałem, używa pierwszego.


7
Jak mogę poczekać na test JUnit?
Mam test JUnit, który chcę synchronicznie odczekać przez pewien okres czasu. Mój test JUnit wygląda następująco: @Test public void testExipres(){ SomeCacheObject sco = new SomeCacheObject(); sco.putWithExipration("foo", 1000); // WAIT FOR 2 SECONDS assertNull(sco.getIfNotExipred("foo")); } Próbowałem Thread.currentThread().wait(), ale zgłasza wyjątek IllegalMonitorStateException (zgodnie z oczekiwaniami). Czy jest w tym jakaś sztuczka, czy …




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.