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

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

16
подождите, пока все потоки закончат свою работу в java
Я пишу приложение, которое имеет 5 потоков, которые одновременно получают некоторую информацию из Интернета и заполняют 5 разных полей в классе буфера. Мне нужно проверить данные буфера и сохранить их в базе данных, когда все потоки завершат свою работу. Как я могу это сделать (получать предупреждения, когда все потоки завершили …

6
Как использовать многопроцессорную очередь в Python?
Мне очень сложно понять, как многопроцессорная очередь работает на Python и как ее реализовать. Допустим, у меня есть два модуля Python, которые обращаются к данным из общего файла, назовем эти два модуля писателем и читателем. Мой план состоит в том, чтобы и читатель, и писатель помещали запросы в две отдельные …

6
C ++ terminate вызывается без активного исключения
Я получаю ошибку C ++ при потоковой передаче: terminate called without an active exception Aborted Вот код: #include <queue> #include <thread> #include <mutex> #include <condition_variable> template<typename TYPE> class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &operator<<(TYPE &other) { std::unique_lock<std::mutex> mtx_lock(mtx); while(buffer.size()>=max_buffer_size) stop_if_full.wait(mtx_lock); …

3
как узнать, что НЕ является потокобезопасным в Ruby?
начиная с Rails 4 , по умолчанию все должно работать в многопоточном окружении. Это означает, что весь код, который мы пишем, И ВСЕ используемые драгоценные камни должны бытьthreadsafe Итак, у меня есть несколько вопросов по этому поводу: что НЕ является потокобезопасным в ruby ​​/ rails? Vs Что такое потокобезопасность в …

4
Что такое блокировка реентера и концепция в целом?
Я всегда путаюсь. Может ли кто-нибудь объяснить, что означает реентерабельность в разных контекстах? И почему вы хотите использовать реентерабельность и не реентерабельность? Скажем, примитивы блокировки pthread (posix), являются ли они реентерабельными или нет? Каких подводных камней следует избегать при их использовании? Повторяется ли мьютекс?


28
Примеры простых тупиков
Я хотел бы объяснить новичкам многопоточность тупиков. В прошлом я видел много примеров тупиковых ситуаций, некоторые с использованием кода, а некоторые с использованием иллюстраций (например, знаменитые 4 машины ). Существуют также классические задачи, которые легко зайти в тупик, такие как The Dining Philosophers , но они могут быть слишком сложными …

3
Правильный способ реализовать нескончаемую задачу. (Таймеры против задачи)
Итак, мое приложение должно выполнять действие почти непрерывно (с паузой в 10 секунд или около того между каждым запуском), пока приложение работает или запрашивается отмена. Необходимая работа может занять до 30 секунд. Не лучше ли использовать System.Timers.Timer и использовать AutoReset, чтобы убедиться, что он не выполняет действие до завершения предыдущего …




9
Синхронизация доступа к SimpleDateFormat
В javadoc для SimpleDateFormat указано, что SimpleDateFormat не синхронизируется. «Форматы даты не синхронизируются. Рекомендуется создавать отдельные экземпляры формата для каждого потока. Если несколько потоков обращаются к формату одновременно, он должен быть синхронизирован извне». Но как лучше всего использовать экземпляр SimpleDateFormat в многопоточной среде? Вот несколько вариантов, о которых я подумал, …

1
Цикл не видит значение, измененное другим потоком без оператора печати
В моем коде есть цикл, который ожидает изменения какого-либо состояния из другого потока. Другой поток работает, но мой цикл никогда не видит измененное значение. Он ждет вечно. Однако, когда я помещаю System.out.printlnоператор в цикл, он внезапно срабатывает! Зачем? Ниже приведен пример моего кода: class MyHouse { boolean pizzaArrived = false; …

8
Синхронизация незавершенного поля
Предупреждение отображается каждый раз, когда я синхронизирую неокончательное поле класса. Вот код: public class X { private Object o; public void setO(Object o) { this.o = o; } public void x() { synchronized (o) // synchronization on a non-final field { } } } поэтому я изменил кодировку следующим образом: …

8
Как сделать мой ArrayList потокобезопасным? Другой подход к проблеме в Java?
У меня есть список ArrayList, который я хочу использовать для хранения объектов RaceCar, расширяющих класс Thread, как только они закончат выполнение. Класс с именем Race обрабатывает этот список ArrayList с помощью метода обратного вызова, который объект RaceCar вызывает по завершении выполнения. Метод обратного вызова addFinisher (RaceCar Finisher) добавляет объект RaceCar …

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