Вопросы с тегом «synchronization»

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

8
Как работает блокировка?
Я вижу, что для использования объектов, которые не являются потокобезопасными, мы заключаем код в блокировку следующим образом: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Так что же происходит, когда несколько потоков обращаются к одному и тому же коду (предположим, что он …

22
Избегать синхронизации (это) в Java?
Всякий раз, когда в SO возникает вопрос о синхронизации Java, некоторые люди очень хотят указать, чего synchronized(this)следует избегать. Вместо этого, они утверждают, что блокировка частной ссылки должна быть предпочтительной. Некоторые из приведенных причин: какой-то злой код может украсть вашу блокировку (очень популярный, также имеет «случайно» вариант) все синхронизированные методы в …

5
C # версия синхронизированного ключевого слова Java?
Есть ли у c # собственная версия ключевого слова "synchronized" в Java? То есть в Java это может быть указано либо для функции, объекта или блока кода, например так: public synchronized void doImportantStuff() { // dangerous code goes here. } или public void doImportantStuff() { // trivial stuff synchronized(someLock) { …

7
В чем разница между атомарным / энергозависимым / синхронизированным?
Как атомарные / энергозависимые / синхронизированные работают внутри? В чем разница между следующими блоками кода? Код 1 private int counter; public int getNextUniqueIndex() { return counter++; } Код 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Код 3 private volatile int counter; public int getNextUniqueIndex() { return …


5
Как @synchronized блокировать / разблокировать в Objective-C?
Разве @synchronized не использует «блокировку» и «разблокировку» для достижения взаимного исключения? Как это делает блокировку / разблокировку тогда? Вывод следующей программы - только «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 …

10
Синхронизация против блокировки
java.util.concurrentAPI предоставляет класс с именем as Lock, который в основном сериализует элемент управления для доступа к критическому ресурсу. Это дает такой метод, как park()и unpark(). Мы можем делать подобные вещи, если мы можем использовать synchronizedключевое слово wait()и notify() notifyAll()методы и. Мне интересно, какой из них лучше на практике и почему?

8
Как синхронизированные статические методы работают в Java и можно ли использовать их для загрузки объектов Hibernate?
Если у меня есть класс util со статическими методами, которые будут вызывать функции Hibernate для выполнения базового доступа к данным. Мне интересно, если создание метода synchronizedявляется правильным подходом для обеспечения безопасности потока. Я хочу это, чтобы предотвратить доступ информации к тому же экземпляру БД. Однако теперь я уверен, что следующий …

8
Mutex пример / учебник? [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 5 месяцев назад . Улучшить этот вопрос Я новичок в многопоточности и пытался понять, как работают мьютексы. Я много гуглил, …

7
Каковы различия между различными параметрами синхронизации потоков в C #?
Может кто-нибудь объяснить разницу между: блокировка (некоторый объект) {} Использование Mutex Используя семафор Использование монитора Использование других классов синхронизации .Net Я просто не могу понять это. Мне кажется, первые два одинаковы?

6
Являются ли Java статические инициализаторы потокобезопасными?
Я использую статический блок кода для инициализации некоторых контроллеров в реестре, который у меня есть. Поэтому мой вопрос: могу ли я гарантировать, что этот статический блок кода будет вызываться только один раз при первой загрузке класса? Я понимаю, что не могу гарантировать, когда будет вызван этот блок кода, я предполагаю, …

10
C ++ 0x не имеет семафоров? Как синхронизировать потоки?
Правда ли, что C ++ 0x придет без семафоров? Уже есть несколько вопросов о переполнении стека относительно использования семафоров. Я использую их (семафоры posix) все время, чтобы позволить потоку ожидать какого-то события в другом потоке: void thread0(...) { doSomething0(); event1.wait(); ... } void thread1(...) { doSomething1(); event1.post(); ... } Если …


5
Как синхронизировать статическую переменную между потоками, выполняющими разные экземпляры класса в Java?
Я знаю, что использование synchronizeключевого слова перед методом обеспечивает синхронизацию этого объекта. То есть 2 потока, выполняющие один и тот же экземпляр объекта, будут синхронизированы. Однако, поскольку синхронизация происходит на уровне объекта, 2 потока, выполняющие разные экземпляры объекта, не будут синхронизированы. Если у нас есть статическая переменная в классе Java, …

5
Как использовать свойство CancellationToken?
По сравнению с предыдущим кодом для класса RulyCanceler я хотел запустить код с использованием CancellationTokenSource. Как использовать его, как указано в разделе «Токены отмены» , то есть без генерации / перехвата исключения? Могу ли я использовать IsCancellationRequestedнедвижимость? Я пытался использовать это так: cancelToken.ThrowIfCancellationRequested(); и try { new Thread(() => Work(cancelSource.Token)).Start(); …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.