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

Многопоточность - это способность компьютера или программы выполнять работу одновременно или асинхронно, используя несколько одновременных потоков выполнения (обычно называемых потоками).

5
Понимание java.lang.Thread.State: WAITING (парковка)
Во-первых, действительно тупой вопрос, мне просто интересно, что означает ожидание «парковка»? Ожидает ли поток, чтобы его припарковали, или он просто припаркован и поэтому находится в состоянии ожидания? И когда эта парковка произойдет, сколько ресурсов процессора / памяти будет занято? Какова цель парковки потока? Во-вторых, взглянув на метод park в API …

9
Android SDK AsyncTask doInBackground не работает (подкласс)
По состоянию на 15 февраля 2012 г. мне еще предстоит найти ни хорошее объяснение, ни причину, почему это не работает. Наиболее близким к решению является использование традиционного подхода Thread , но тогда зачем включать класс, который (кажется, не работает) в Android SDK? Даже так! У меня есть подкласс AsyncTask: // …

16
Я слышал, что i ++ не является потокобезопасным, а ++ i - потокобезопасным?
Я слышал, что i ++ не является потокобезопасным оператором, так как в сборке он сводится к сохранению исходного значения в качестве временного где-то, увеличению его, а затем замене, что может быть прервано переключением контекста. Однако меня интересует ++ i. Насколько я могу судить, это сократилось бы до одной инструкции сборки, …
90 c++  c  multithreading 

3
Необходимо понимать использование SemaphoreSlim
Вот код, который у меня есть, но я не понимаю, что SemaphoreSlimпроисходит. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); if (msg …

7
Доступ к обработчику потока пользовательского интерфейса из службы
Я пробую что-то новое на Android, для чего мне нужно получить доступ к обработчику потока пользовательского интерфейса. Знаю следующее: У потока пользовательского интерфейса есть собственный обработчик и цикл. Любое сообщение будет помещено в очередь сообщений потока пользовательского интерфейса. Лупер забирает событие и передает его обработчику. Обработчик обрабатывает сообщение и отправляет …

11
Законно ли дважды вызывать метод start в одном и том же потоке?
Следующий код приводит к тому, java.lang.IllegalThreadStateException: Thread already startedчто я вызвал start()метод второй раз в программе. updateUI.join(); if (!updateUI.isAlive()) updateUI.start(); Такое бывает во второй раз updateUI.start()называется. Я прошел через это несколько раз, и поток вызывается и полностью выполняется до завершения, прежде чем попасть updateUI.start(). Вызов updateUI.run()позволяет избежать ошибки, но заставляет …

6
Должен ли я получить блокировку перед вызовом condition_variable.notify_one ()?
Я немного запутался в использовании std::condition_variable. Я понимаю , что я должен создать unique_lockна mutexперед вызовом condition_variable.wait(). Я не могу найти, нужно ли мне также получить уникальную блокировку перед вызовом notify_one()или notify_all(). Примеры на cppreference.com противоречивы. Например, страница notify_one дает следующий пример: #include <iostream> #include <condition_variable> #include <thread> #include <chrono> …

3
PHP Thread Safe и Non-Thread Safe для Windows
Я скачиваю PHP для Windows. У меня на сайте 2 варианта. Безопасный поток PHP PHP без поддержки потоков Пожалуйста, ответьте на следующие вопросы: Какая разница между двумя? Какие преимущества и недостатки друг перед другом? Я разрабатываю веб-сайт электронной коммерции, который будет иметь большой трафик, какой из них рекомендуется больше и …


9
Монитор против блокировки
Когда в C # целесообразно использовать Monitorкласс или lockключевое слово для обеспечения безопасности потоков? РЕДАКТИРОВАТЬ: Судя по ответам до сих пор, lockэто короткая рука для серии вызовов Monitorкласса. Для чего именно нужен вызов блокировки? Или, точнее, class LockVsMonitor { private readonly object LockObject = new object(); public void DoThreadSafeSomethingWithLock(Action action) …

4
Platform.runLater и задача в JavaFX
Я провел некоторые исследования по этому поводу, но я все еще ОЧЕНЬ смущен, если не сказать больше. Может ли кто-нибудь дать мне конкретный пример, когда использовать, Taskа когда использовать Platform.runLater(Runnable);? В чем именно разница? Есть ли золотое правило, когда использовать что-либо из этого? Также поправьте меня, если я ошибаюсь, но …

2
Как работают Актеры по сравнению с потоками?
Есть ли хорошее и краткое объяснение того, как работают Актеры по сравнению с потоками? Разве поток нельзя рассматривать как актера и отправлять сообщения другим потокам? Я вижу некоторую разницу, но для меня это не так ясно. Могу ли я использовать актеров на любом языке, используя потоки по-разному?

3
фоновая функция в Python
У меня есть сценарий Python, который иногда отображает изображения пользователю. Иногда изображения могут быть довольно большими, и они часто используются повторно. Их отображение не критично, но отображение связанного с ними сообщения критично. У меня есть функция, которая загружает необходимое изображение и сохраняет его локально. Прямо сейчас он запускается вместе с …


11
Как получить целочисленный идентификатор потока в c ++ 11
c ++ 11 имеет возможность получить текущий идентификатор потока, но он не может быть приведен к целочисленному типу: cout<<std::this_thread::get_id()<<endl; вывод: 139918771783456 cout<<(uint64_t)std::this_thread::get_id()<<endl; ошибка: недопустимое приведение из типа 'std :: thread :: id' к типу 'uint64_t', то же самое для других типов: недопустимое приведение из типа 'std :: thread :: id' …

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