Результаты поиска по запросу "thread-safety"

6 ответов

Это как socketWrite в нативном коде, поэтому он не защищен от потоков

я есть сокет, в который я и читаю, и пишу, через BufferedReaders и BufferedWriters. Я не уверен, какие операции можно делать из отдельных потоков. Я предполагаю, что запись в сокет из двух разных потоков одновременно - плохая идея. То же самое со ...

0 ответов

(Спецификация JSR133)

я есть вопрос, касающийся модели памяти Java. Вот простой класс, представляющий проблему: public class ImmutableIntArray { private final int[] array; public ImmutableIntArray() { array = new int[10]; for (int i = 0; i < 10; i++) { array[i] = i; ...

2 ответа

ConcurrentBag и Parallel.ForEach мне кажутся без проблем. Если вы используете эти типы в сценариях с многопользовательским доступом большого объема, эти классы в вашей реализации могут поднять процессорный процессор до уровней, которые могут привести к сбою вашего веб-сервера. Кроме того, эта реализация запускает N задач (потоков) для выполнения каждой из итераций, поэтому будьте осторожны при выборе этих классов и реализаций. Я недавно провел в этой ситуации, и мне пришлось извлечь дамп памяти, чтобы проанализировать, что происходит с ядром моего веб-приложения. Так что будьте осторожны, потому что Concurrentbag является ThreadSafe, и в веб-сценариях это не лучший способ.

ние ConcurrentBag на MSDN не понятно: Сумки полезны для хранения предметов, когда заказ не имеет значения, и в отличие от наборов, сумки поддерживают дубликаты. ConcurrentBag - это потокобезопасная реализация пакета, оптимизированная для ...

ТОП публикаций

1 ответ

, Вы должны решить, может ли это вызвать проблемы в вашем конкретном случае использования.

отрим следующий пример кода: class MyClass { public long x; public void DoWork() { switch (x) { case 0xFF00000000L: // do whatever... break; case 0xFFL: // do whatever... break; default: //notify that something going wrong throw new Exception(); ...

4 ответа

setLockingEnabled (boolean lockEnabled) Управляет тем, что SQLiteDatabase сделан поточно-безопасным, используя блокировки вокруг критических секций.

я есть база данных с некоторыми таблицами. Я хочу обновить таблицы, используя несколько потоков. Я буду использовать один и тот же экземпляр SQLiteDatabase во всех потоках. Пожалуйста, предложите, если этот подход правильный. Безопасна ли база ...

3 ответа

Оба ответа здесь верны. Кроме того, состояние таких потоков в пуле будет «ждать». Это явление также может наблюдаться при использовании библиотек типа Okhttp, которые используют пул соединений для сетевых операций.

я использую проверку AsyncTasks в DDMS, поток сохраняется в памяти как ожидающий поток после метода onPostExecute (), это нормально? Вот упрощенное задание, которое воспроизводит мою проблему: package com.example.async; import ...

1 ответ

В небольшом проекте, который я сделал, я закончил все свои уроки, потому что ни один из них не был предназначен для наследования. Я думал, что в то время это была очень плохая практика, но теперь вы указали, что другие делают это, и я чувствую себя немного лучше :) Но когда я полностью исключил наследование из своего дизайна, все стало намного проще. О, и я предполагаю, что отсутствие наследования и запрета наследования означает, что вы больше не будете испытывать vtable-запросы при каждом вызове метода.

я проблема с параллелизмом Java. Да, я смотрел на вопросы с почти одинаковым названием, но все они, казалось, задавали немного разные вещи. Да я прочиталJava-параллелизм на практике, Да, я понимаю, почему этоде-факто ссылка на тему. Да, я ...

2 ответа

Модель памяти Java на финале

тоящее время я имею дело с кодом, в котором есть синглтон, который используется многими потоками и не имеет состояния, кроме двух полей для TransactionTemplate и SimpleJdbcTemplate, которые используются в функциях синглтона для доступа к базе ...

6 ответов

Мы можем выполнять параллельное программирование с Java. С помощью java-параллелизма мы можем выполнять параллельное программирование, неизменность, потоки, среду исполнения (пулы потоков), фьючерсы, вызовы и программирование на основе fork-join.

я есть список персон. Существует два вызова API для его обновления (добавления и удаления): public void add(String newPersonName) { if (personNameIdMap.get(newPersonName) != null) { myPersonId.add(personNameIdMap.get(newPersonName) } else { // ...

3 ответа

Дефект в функции rehash ().

private object lockObj = new object(); private Dictionary<int, string> dict = new Dictionary<int, string>(); public string GetOrAddFromDict(int key) { string value; // non-locked access: if (dict.TryGetValue(key, out value)) return value; lock ...