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

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

5
Каковы правильные параметры ссылки для использования std :: thread в GCC под Linux?
Привет, я пытаюсь использовать std::threadс G ++. Вот мой тестовый код #include <thread> #include <iostream> int main(int, char **){ std::thread tt([](){ std::cout<<"Thread!"<<std::endl; }); tt.join(); } Он компилируется, но когда я пытаюсь его запустить, результат: terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted Aborted Моя версия компилятора: …


8
Кто вызывает метод прерывания потока Java (), если я нет?
Я прочитал и перечитал Java Concurrency in Practice, я прочитал здесь несколько тем по этой теме, я прочитал статью IBM Работа с InterruptedException, но есть кое-что, что я просто не понимаю, что, по моему мнению, может быть нарушено на два вопроса: Если я никогда сам никогда не прерываю другие потоки, …

6
Что означает монитор объекта в Java? Зачем использовать это слово?
Читая статьи о потоках Java, я часто замечаю выражение: «текущий поток является владельцем монитора этого объекта». Я понимаю смысл: поток получает право работать с объектом. Но я не понимаю, почему мы используем фразу «монитор объекта» вместо «блокировка объекта»? Короче говоря, я не знаю значения слова «монитор». Вопрос может быть странным …

6
Остается ли заблокированный объект заблокированным, если внутри него возникает исключение?
В приложении для потоковой передачи С #, если бы я заблокировал объект, скажем, очередь, и если произойдет исключение, останется ли объект заблокированным? Вот псевдокод: int ii; lock(MyQueue) { MyClass LclClass = (MyClass)MyQueue.Dequeue(); try { ii = int.parse(LclClass.SomeString); } catch { MessageBox.Show("Error parsing string"); } } Насколько я понимаю, код после …

6
Безблокировочная многопоточность для настоящих экспертов по резьбонарезанию
Я читал ответ, который Джон Скит дал на вопрос, и в нем он упомянул следующее: Насколько мне известно, многопоточность без блокировок предназначена для настоящих экспертов по многопоточности, к которым я не принадлежу. Это не первый раз, когда я слышу это, но я обнаружил, что очень мало людей говорят о том, …


6
Производительность переменной ThreadLocal
Насколько из ThreadLocalпеременной читается медленнее, чем из обычного поля? Более конкретно, создание простого объекта быстрее или медленнее, чем доступ к ThreadLocalпеременной? Я предполагаю, что это достаточно быстро, так что наличие ThreadLocal<MessageDigest>экземпляра намного быстрее, чем создание экземпляра MessageDigestкаждый раз. Но применимо ли это также, например, к байту [10] или байту [1000]? …


5
Понимание std :: atomic :: compare_exchange_weak () в C ++ 11
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak()является одним из примитивов сравнения-обмена, представленных в C ++ 11. Он слабый в том смысле, что возвращает false, даже если значение объекта равно expected. Это происходит из-за ложного сбоя на некоторых платформах, где для его реализации используется последовательность инструкций (вместо одной, как на …

6
Как проверить, работает ли все еще std :: thread?
Как я могу проверить, работает ли std::threadеще (независимо от платформы)? У него нет timed_join()метода, и joinable()он не предназначен для этого. Я думал заблокировать мьютекс с помощью a std::lock_guardв потоке и использовать try_lock()метод мьютекса, чтобы определить, заблокирован ли он по-прежнему (поток выполняется), но мне это кажется излишне сложным. Вы знаете более …

5
Использование глобальной переменной с потоком
Как передать глобальную переменную потоку? Мой пример кода Python: from threading import Thread import time a = 0 #global variable def thread1(threadname): #read variable "a" modify by thread 2 def thread2(threadname): while 1: a += 1 time.sleep(1) thread1 = Thread( target=thread1, args=("Thread-1", ) ) thread2 = Thread( target=thread2, args=("Thread-2", ) …

13
Вводит ли ключевое слово volatile в C ++ забор памяти?
Я это понимаю volatile информирует компилятор о том, что значение может быть изменено, но должен ли компилятор для выполнения этой функции вводить забор памяти, чтобы заставить его работать? Насколько я понимаю, последовательность операций с изменчивыми объектами не может быть переупорядочена и должна быть сохранена. Похоже, это подразумевает, что некоторые ограждения …


4
Собран мусор потока Java или нет
Этот вопрос был размещен на каком-то сайте. Я не нашел там правильных ответов, поэтому снова публикую здесь. public class TestThread { public static void main(String[] s) { // anonymous class extends Thread Thread t = new Thread() { public void run() { // infinite loop while (true) { try { …

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