multithreading- все статьи тега ➜ страница 8


Разница между-pthread и-lpthread при компиляции

в чем разница между gcc -pthread и gcc -lpthread который используется при компиляции многопоточных программ? ...

В ожидании списка будущего

у меня есть метод, который возвращает List фьючерсы List<Future<O>> futures = getFutures(); теперь я хочу подождать, пока либо все фьючерсы не будут успешно обработаны, либо любая из задач, выход которых возвращается будущим, вызывает исключение. Даже если одна задача вызывает исключение, нет смысла ждать других фьючерсов. простой подход к wait() { For(Future f : futures) { try { f.get(); } catch(Exception e) { //TODO catch specific exception / ...

Элемент управления WebBrowser в новом потоке

У меня есть список Uri, который я хочу "щелкнуть", чтобы достичь этого я пытаюсь создать новый элемент управления веб-браузером для Uri. Я создаю новый поток для каждого URI. Проблема, с которой я сталкиваюсь, - это конец потока до полной загрузки документа, поэтому я никогда не использую событие DocumentComplete. Как я могу преодолеть это? var item = new ParameterizedThreadStart(ClicIt.Click); var thread = new Thread(item) {Name = "ClickThread"}; thread.Start(uriItem); public static void Cl ...

подождите, пока все потоки не закончат свою работу на java

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

FixedThreadPool против CachedThreadPool: меньшее из двух зол

Итак, у меня есть программа, которая порождает потоки (~5-150), которые выполняют кучу задач. Первоначально я использовал FixedThreadPool поскольку этот аналогичный вопрос предполагал, что они лучше подходят для более длительных задач и с моими очень ограниченными знаниями многопоточности, я рассмотрел средний срок службы потоков (несколько минут)"долго жил". однако, я недавно добавил возможность порождать дополнительные потоки и делать это берет меня выше предела потока я установил. В в этом ...

Что такое замок для повторного входа и концепция в целом?

Я всегда путаю. Кто-нибудь объяснит, что Reentrant означает в разных контекстах? И почему вы хотите использовать реентерабельность против нереентерабельности? скажем, pthread (posix) блокирующие примитивы, они повторно вступают или нет? Каких подводных камней следует избегать при их использовании? является ли мьютекс re-entrant? ...

Синхронизация неокончательного поля

предупреждение отображается каждый раз, когда я синхронизирую на поле не окончательного класса. Вот код: 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 { } } } поэтому я изменил кодировку следующим образом.. public class X { private final Object o; public X() { o = new Object(); } ...

Что такое std::atomic?

Я понимаю, что std::atomic<> является атомарным объектом. Но атомный до какой степени? В моем понимании операция может быть атомной. Что именно подразумевается под атомизацией объекта? Например, если есть два потока одновременно выполнив следующий код: a = a + 12; тогда вся операция (скажем add_twelve_to(int)) атомный? Или изменения, внесенные в переменную atomic (so operator=())? ...

Является потокобезопасным HashMap для разных ключей?

Если у меня есть два нескольких потока, обращающихся к HashMap, но гарантирую, что они никогда не будут обращаться к одному и тому же ключу одновременно, может ли это привести к состоянию гонки? ...

C++11: Почему переменная std::condition использует std:: unique lock?

Я немного запутался в роли std::unique_lock при работе с std::condition_variable. Насколько я понял документация,std::unique_lock в основном раздутый замок охранник, с возможностью замены состояния между двумя замками. Я до сих пор использовать pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) для этой цели (я думаю, что это то, что STL использует на posix). Для этого нужен мьютекс, а не замок. какая здесь разница? Тот факт, что std::condition_variable занимается std::unique_lock ...

Как поставить задачу в спящий режим (или задержку) в C# 4.0?

здесь задач.Задержка в .NET 4.5 Как я могу сделать то же самое в .NET 4.0? ...

Возвращаемое значение из потока

у меня есть метод с HandlerThread. Значение изменяется внутри Thread и я хотел бы вернуть его в test() метод. Есть ли способ сделать это? public void test() { Thread uiThread = new HandlerThread("UIHandler"){ public synchronized void run(){ int value; value = 2; //To be returned to test() } }; uiThread.start(); } ...

Платформа.runLater и задача в JavaFX

Я делал некоторые исследования по этому поводу, но я все еще очень смущен, чтобы не сказать больше. кто может дать мне конкретный пример, когда использовать Task и когда использовать Platform.runLater(Runnable);? Какая разница? Есть ли золотое правило, когда использовать любой из них? также поправьте меня, если я ошибаюсь, но не являются ли эти два "объекта" способом создания другого потока внутри основного потока в GUI (используется для обновления GUI)? ...

Принудительное обновление GUI из потока пользовательского интерфейса

в WinForms, как заставить немедленное обновление пользовательского интерфейса из потока пользовательского интерфейса? то, что я делаю примерно: label.Text = "Please Wait..." try { SomewhatLongRunningOperation(); } catch(Exception e) { label.Text = "Error: " + e.Message; return; } label.Text = "Success!"; текст метки не устанавливается в "Пожалуйста, подождите..."перед операцией. Я решил это, используя другой поток для операции, но он становится волосатым, и я хотел бы упрост ...

Как получить идентификатор целочисленного потока в 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’ же для других типов: недопустимого приведения типа ‘СТД::резьба::идентификатор’ для типа ‘uint32_t’ Я действительно не хочу делать приведение указателя, чтобы ...

Принуждение нескольких потоков использовать несколько процессоров, когда они доступны

Я пишу программу Java, которая использует много процессора из-за природы того, что он делает. Однако многие из них могут работать параллельно, и я сделал свою программу многопоточной. Когда я запускаю его, кажется, что он использует только один процессор, пока ему не понадобится больше, чем он использует другой процессор - есть ли что-нибудь, что я могу сделать в Java, чтобы заставить разные потоки работать на разных ядрах/процессорах? ...

Многопоточность в Bash [дубликат]

этот вопрос уже есть ответ здесь: как вы запускаете несколько программ параллельно из сценария bash? 13 ответов Я хотел бы представить функцию многопоточности в мой сценарий оболочки. У меня есть скрипт, который вызывает функцию read_cfg() с разными аргументами. Каждая из этих функций звонки независимы. можно ли создавать экземпляры этих вызовов функций (а не скриптов) параллельно. Пожалуйста, позвольт ...

Разница между многозадачностью, многопоточностью и многопроцессорностью?

что разница между многозадачность, мультипрограммирование & мультипроцессирование это происходит регулярно для моих экзаменов университета ОС, и я не могу найти хороший ответ. Я знаю довольно много о многозадачности и многопрограммности, но мне нужно это подтвердить. ...

Когда я должен использовать ConcurrentSkipListMap?

В Java, ConcurrentHashMap есть ли лучше multithreading решение. Тогда когда я должен использовать ConcurrentSkipListMap? Это избыточность? есть ли многопоточность аспекты между этими двумя являются общими? ...

Вызов метода в главном потоке?

прежде всего я пишу код для iphone. Мне нужно иметь возможность вызывать метод в основном потоке без использования performSelectorOnMainThread. Причина, по которой я не хочу использовать performSelectorOnMainThread это вызывает проблемы, когда я пытаюсь создать макет для модульного тестирования. [self performSelectorOnMainThread:@Selector(doSomething) withObject:nil]; проблема в том, что мой макет не знает, как назвать doSomething но он не знает, как позвонить performSelectorOnMainThread. Ит ...