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

368
Что означает термин «потокобезопасный»?

Означает ли это, что два потока не могут изменить базовые данные одновременно? Или это означает, что данный сегмент кода будет работать с предсказуемыми результатами, когда несколько потоков исполняют этот сегмент...

351
Как запустить поток Runnable в Android через определенные промежутки времени?

Я разработал приложение для отображения текста через определенные промежутки времени на экране эмулятора Android. Я использую Handlerкласс. Вот фрагмент из моего кода: handler = new Handler(); Runnable r = new Runnable() { public void run() { tv.append("Hello World"); } }; handler.postDelayed(r,...

351
Что такое семафор?

Семафор - это концепция программирования, которая часто используется для решения многопоточных задач. Мой вопрос к сообществу: Что такое семафор и как вы его...

349
std :: unique_lock <std :: mutex> или std :: lock_guard <std :: mutex>?

На этот вопрос есть ответы на Переполнение стека на русском : Чем std :: unique_lock отличается от std :: lock_guard? У меня есть два варианта использования. О. Я хочу синхронизировать доступ двумя потоками к очереди. Б. Я хочу синхронизировать доступ двух потоков к очереди и использовать условную...

348
Пул потоков, похожий на пул многопроцессорных?

Существует ли класс Pool для рабочих потоков , аналогичный классу пула многопроцессорного модуля ? Мне нравится, например, простой способ распараллелить функцию карты def long_running_func(p): c_func_no_gil(p) p = multiprocessing.Pool(4) xs = p.map(long_running_func, range(100)) Однако я хотел бы...

342
Как получить возвращаемое значение из потока в Python?

Функция fooниже возвращает строку 'foo'. Как я могу получить значение'foo' которое возвращается из цели потока? from threading import Thread def foo(bar): print('hello {}'.format(bar)) return 'foo' thread = Thread(target=foo, args=('world!',)) thread.start() return_value = thread.join() «Один...

342
Вызывающий поток не может получить доступ к этому объекту, потому что другой поток владеет им

Мой код как ниже public CountryStandards() { InitializeComponent(); try { FillPageControls(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Country Standards", MessageBoxButton.OK, MessageBoxImage.Error); } } /// <summary> /// Fills the page controls. /// </summary> private void...

340
Как запустить простой код в новом потоке?

У меня есть немного кода, который мне нужно запустить в потоке, отличном от графического интерфейса, так как в настоящее время он вызывает зависание формы во время выполнения кода (10 секунд или около того). Предположим, я никогда не создавал новую тему раньше; Что является простым / базовым...

326
Запуск кода в главном потоке из другого потока

В сервисе Android я создал поток (ы) для выполнения некоторых фоновых задач. У меня есть ситуация, когда поток должен опубликовать определенную задачу в очереди сообщений основного потока, например a Runnable. Есть ли способ , чтобы получить Handlerиз главного потока и поста Message/ Runnableк нему...

325
Использование модуля «подпроцесс» с таймаутом

На этот вопрос есть ответы на Stack Overflow на русском : Прерывание процесса и задержка на исполнение Вот код Python для запуска произвольной команды, возвращающей свои stdoutданные, или для создания исключения для ненулевых кодов выхода: proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, #...

319
Получение идентификатора потока из потока

Например, в C # при отладке потоков вы можете видеть идентификатор каждого потока. Я не мог найти способ получить ту же нить программным способом. Я даже не смог получить идентификатор текущего потока (в свойствах Thread.currentThread). Итак, мне интересно, как Visual Studio получает идентификаторы...

317
Обработка InterruptedException в Java

В чем разница между следующими способами обработки InterruptedException? Каков наилучший способ сделать это? try{ //... } catch(InterruptedException e) { Thread.currentThread().interrupt(); } ИЛИ try{ //... } catch(InterruptedException e) { throw new RuntimeException(e); } РЕДАКТИРОВАТЬ: Я хотел бы...

317
Зачем использовать ReentrantLock, если можно использовать синхронизированный (это)?

Я пытаюсь понять, что делает блокировку параллелизма настолько важной, если ее можно использовать synchronized (this). В коде ниже, я могу сделать либо: синхронизировать весь метод или синхронизировать уязвимую область ( synchronized(this){...}) ИЛИ заблокируйте уязвимую область кода с помощью...

313
C # версия синхронизированного ключевого слова Java?

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

312
Сколько потоков слишком много?

Я пишу сервер и отправляю каждое действие в отдельный поток при получении запроса. Я делаю это потому, что почти каждый запрос делает запрос к базе данных. Я использую библиотеку потоков, чтобы сократить строительство / уничтожение потоков. Мой вопрос: какова хорошая точка отсечения для потоков...