thread-safety- все статьи тега


Являются ли структуры C# потокобезопасными?

Является ли структура C# потокобезопасной? Например, если есть: struct Data { int _number; public int Number { get { return _number; } set { _number = value; } } public Data(int number) { _number = number; } } В другом типе: class DadData { public Data TheData { get; set; } } - это свойство данных, потокобезопасным? ...

Является ли DWScript потокобезопасным?

Я хотел бы знать, способен ли DWScript использовать потоки внутри скриптов, поскольку некоторые движки не синхронизируют доступ к своим внутренним структурам данных. ...

Java static и потокобезопасность или что делать

Я расширяю библиотеку, чтобы сделать для меня кое-какую работу. Вот код: public static synchronized String decompile(String source, int flags,UintMap properties,Map<String,String> namesMap) { Decompiler.namesMap=namesMap; String decompiled=decompile(source,flags,properties); Decompiler.namesMap=null; return decompiled; } Проблема в том, что namesMap является статической переменной. Это нить безопасная или нет? Потому что если этот код выполняетс ...

Не дает контекста.MODE MULTI PROCESS to getSharedPreferences () сделать общие префы потокобезопасными?

SharedPreferences не являются потокобезопасными, как ясно сказано в Android docs: Примечание: В настоящее время этот класс не поддерживает использование через несколько процессы. Это будет добавлено позже. Тем не менее, у меня есть приложение, которое может запускать шесть других java.util.Threads, которые commit() для общих префиксов, и они могут быть запущены одновременно (хотя маловероятно, что все они будут). Вот почему я всегда получаю ссылку на мои общие префы из каждого из этих п ...

Является ли std:: regex потокобезопасным?

Связано с является ли статический экземпляр boost::wregex потокобезопасным? но для стандартизированной версии. Можно ли вызвать regex_search из нескольких потоков с одним и тем же объектом regex? ...

крайней мере блокирования кэша Java

Предположим, мы хотим реализовать кэш для определенной сущности. class Cache { private static Map<String, Object> cache = new HashMap<>(); public static Object get(String id) { assert notNullOrEmpty(id); return cache.get(id); } public static Object add(String id, Object element) { assert notNullOrEmpty(id) && notNull(element); if(cache.containsKey(id)) return cache.get(id); cache.put(id, element); return ele ...

Потокобезопасная глобальная переменная в Java

Я пытаюсь понять механизм потокобезопасности в java, и мне нужна помощь. У меня есть класс: public class ThreadSafe { private Executor executor = new ScheduledThreadPoolExecutor(5); private long value = 0; public void method() { synchronized (this) { System.out.println(Thread.currentThread()); this.value++; } } private synchronized long getValue() { return this.value; } public static void main(String... args) { ...

Потокобезопасные мультитоны в Java

Дано следующее многотонное: public class Multiton { private static final Multiton[] instances = new Multiton[...]; private Multiton(...) { //... } public static Multiton getInstance(int which) { if(instances[which] == null) { instances[which] = new Multiton(...); } return instances[which]; } } Как мы можем сохранить его потокобезопасным и ленивым без дорогостоящей синхронизации метода getInstance() и споро ...

Java Многопоточность-Threadsafe Счетчик

Я начинаю с очень простого примера многопоточности. Я пытаюсь сделать резьбозащитный счетчик. Я хочу создать два потока, которые периодически увеличивают счетчик до 1000. Код ниже: public class ThreadsExample implements Runnable { static int counter = 1; // a global counter public ThreadsExample() { } static synchronized void incrementCounter() { System.out.println(Thread.currentThread().getName() + ": " + counter); counter++; } @Override ...

разница между атомным bool стандарта и атомным флагом

Я не знал о переменных std::atomic, но знал о переменных std::mutex (странно!) обеспечивается стандартом; однако одна вещь привлекла мое внимание: есть два, казалось бы, одинаковых (для меня) атомарных типа, предоставляемых стандартом, перечисленных ниже: std::atomic<bool> тип std::atomic_flag тип Также упоминается на примере std::atomic_flag type - Std:: atomic_flag-это атомарный булев тип. В отличие от всех специализаций std:: atomic, он гарантированно будет без блокировки ...

Что такое реентерабельная функция?

большинствонаtheвремени, определение reentrance цитируется из Википедия: компьютерная программа или подпрограмма описывается как реентерабельный, если это возможно безопасное позвонил еще раз перед его предыдущий вызов был завершен (т. е. он может быть безопасно выполнен одновременно.) Чтобы быть реентерабельным, а компьютерная программа или рутина: не должно содержать статических (или глобальных) непостоянные данные. не должен возвращать адрес статические (или г ...

Есть!= проверить потокобезопасность?

Я знаю, что сложные операции, такие как i++ не являются потокобезопасными, поскольку они включают несколько операции. но проверка ссылки сама по себе является потокобезопасной операцией? a != a //is this thread-safe я попробовал программу и использовать несколько потоков, но это не удастся. Наверное, я не мог имитировать гонку на своей машине. EDIT: public class TestThreadSafety { private Object a = new Object(); public static void main(String[] args) { final TestThreadS ...

Являются ли несинхронизированные статические методы потокобезопасными, если они не изменяют статические переменные класса?

мне было интересно, если у вас есть статический метод, который является не синхронизируется, но не изменить любые статические переменные это потокобезопасным? Что делать, если метод создает локальные переменные внутри него? Например, является ли следующий код потокобезопасным? public static String[] makeStringArray( String a, String b ){ return new String[]{ a, b }; } Итак, если у меня есть два потока, вызывающие метод ths непрерывно и одновременно, один с собаками (скажем, "Great dane" и ...

Очередь.Очередь против коллекций.двусторонняя очередь

Мне нужна очередь, в которую несколько потоков могут помещать материал, и несколько потоков могут читать. Python имеет по крайней мере два класса очереди, очереди.Очередь и коллекции.дек, причем первый, по-видимому, использует последний внутренне. Оба утверждают, что потокобезопасны в документации. однако в документах очереди также указано: коллекций.дека является альтернативой реализация неограниченных очередей с быстрым атомарным добавлением () и popleft() операции, которые не тр ...

Разница между-pthread и-lpthread при компиляции

в чем разница между gcc -pthread и gcc -lpthread который используется при компиляции многопоточных программ? ...

Многопотоковое исполнение против реентерабельный

недавно я задал вопрос с заголовком " является ли malloc потокобезопасным?- и внутри этого я спросил: "Мэллок снова поступил?" У меня сложилось впечатление, что все повторные входы являются потокобезопасными. это предположение неверно? ...

Является потокобезопасным HashMap для разных ключей?

Если у меня есть два нескольких потока, обращающихся к HashMap, но гарантирую, что они никогда не будут обращаться к одному и тому же ключу одновременно, может ли это привести к состоянию гонки? ...

Модульный тест на потокобезопасность?

Я написал класс и много модульных тестов, но я не сделал его потокобезопасным. Теперь я хочу сделать класс потокобезопасным, но чтобы доказать это и использовать TDD, я хочу написать некоторые неудачные модульные тесты, прежде чем начать рефакторинг. есть хороший способ сделать это? моя первая мысль - просто создать пару потоков и заставить их все использовать класс небезопасным способом. Сделайте это достаточно раз с достаточным количеством нитей, и я обязательно увижу, как он сломается. ...

эффективный потокобезопасный синглтон в C++

обычный шаблон для одноэлементного класса-это что-то вроде static Foo &getInst() { static Foo *inst = NULL; if(inst == NULL) inst = new Foo(...); return *inst; } однако я понимаю, что это решение не является потокобезопасным, поскольку 1) конструктор Foo может быть вызван более одного раза (что может или не может иметь значения) и 2) inst не может быть полностью построен до того, как он будет возвращен в другой поток. одним из решений является обертывание мьютекса вокруг вс ...

Как я могу заставить тест JUnit ждать?

У меня есть тест JUnit, который я хочу иметь ждать в течение определенного периода времени, синхронно. Мой тест JUnit выглядит так: @Test public void testExipres(){ SomeCacheObject sco = new SomeCacheObject(); sco.putWithExipration("foo", 1000); //WAIT FOR 2 SECONDS assertNull(sco.getIfNotExipred("foo")); } я попробовал нить.currentThread().ждать(), но он бросает IllegalMonitorStateException(как и ожидалось). Есть ли какой-то трюк, или мне нужен другой монитор? ...