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

Вопросы, связанные с многопоточностью, включая технику, структуру и вопросы безопасности.

112
Почему Python был написан с помощью GIL?

Глобальная блокировка интерпретатора (GIL), по-видимому, часто упоминается в качестве основной причины, по которой многопоточность и тому подобное является сложной задачей в Python - что поднимает вопрос «Почему это было сделано в первую очередь?» Будучи не программистом, я не имею ни малейшего...

100
Что может сделать несколько потоков, чего не может один поток? [закрыто]

Хотя потоки могут ускорить выполнение кода, нужны ли они на самом деле? Может ли каждый фрагмент кода быть выполнен с использованием одного потока, или существует что-то, что может быть достигнуто только с использованием нескольких...

62
Что такое пул потоков?

Как реализовать пул потоков? Я читал в википедии слова «пул потоков», но до сих пор не могу понять, что нужно сделать, чтобы решить этот вопрос (возможно, потому, что я не совсем понял, что такое пул потоков в простых терминах). Может ли кто-нибудь объяснить мне простым языком, что такое поток...

61
Как работает один поток на нескольких ядрах?

Я пытаюсь понять на высоком уровне, как отдельные потоки работают на нескольких ядрах. Ниже мое лучшее понимание. Я не верю, что это правильно, хотя. Основываясь на моем чтении Hyper-threading , кажется, что ОС организует инструкции всех потоков таким образом, что они не ожидают друг друга. Затем...

59
Насколько важна многопоточность в современной индустрии программного обеспечения? [закрыто]

У меня почти 3 года опыта написания веб-приложений на Java с использованием MVC-фреймворков (например, Struts). До сих пор я никогда не писал многопоточный код, хотя я написал код для крупных розничных сетей. Я получаю несколько вопросов о многопоточности во время интервью и отвечаю на них обычно...

57
Есть ли разница между волокнами, сопрограммами и зелеными нитями, и если это так, что это?

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

55
Зачем программе требуется определенное минимальное количество ядер ЦП?

Можно ли написать код (или законченное программное обеспечение, а не кусок кода), который не будет работать должным образом при запуске на процессоре с числом ядер менее N? Без явной проверки и намеренного сбоя: ЕСЛИ (noOfCores <4) ТОГДА не работают должным образом специально Я смотрю на...

54
Тестирование многопоточных условий гонки

Читая комментарии к этому ответу , а именно: Тот факт, что вы не можете написать тест, не означает, что он не сломан. Неопределенное поведение, которое обычно работает должным образом (C и C ++ полны этого), условия гонки, потенциальное переупорядочение из-за слабой модели памяти ... - CodesInChaos...

52
Должен ли я позаботиться о гоночных условиях, которые почти наверняка не имеют шансов произойти?

Давайте рассмотрим что-то вроде приложения с графическим интерфейсом, в котором основной поток обновляет интерфейс практически мгновенно, а другой поток опрашивает данные по сети или что-то, что гарантированно займет 5-10 секунд для завершения работы. Я получил много разных ответов на это, но...

51
Каковы недостатки создания многопоточной реализации JavaScript во время выполнения? [закрыто]

На прошлой неделе я работал над многопоточной реализацией JavaScript. У меня есть доказательство концепции, сделанной на C ++ с использованием JavaScriptCore и boost. Архитектура проста: когда среда выполнения завершает оценку основного скрипта, который он запускает и присоединяется к пулу потоков,...

49
Обслуживание фоновых задач на большом сайте

Мы имеем дело с интересной проблемой в StackOverflow. У нас есть целая куча маленьких «дел, которые нужно сделать в ближайшее время». Примером является обновление списков «Связанные вопросы». То, что мы делали в прошлом, - это перенести эти задачи на страницы некоторых пользователей. Это никогда не...

47
Являются ли пулы goroutine go-langs просто зелеными нитями?

Комментатор здесь предлагает следующую критику зеленых нитей: Первоначально я был продан на модели N: M как средство программирования, управляемого событиями, без ада обратного вызова. Вы можете написать код, который выглядит как боль старый процедурный код, но под ним есть магия, которая...

42
Почему ваш код не должен использовать 100% CPU? [закрыто]

Я говорю конкретно о программе на C # .NET 4, работающей на Windows XP или выше, но общие ответы также приемлемы. Предположим, уже оптимизированная и эффективная программа. Проблема здесь полностью связана с влиянием высокой загрузки ЦП на аппаратное обеспечение, а также с тем, нужно ли...

39
Устраняет ли неизменность необходимость блокировок при многопроцессорном программировании?

Часть 1 Очевидно, что неизменность сводит к минимуму необходимость блокировок в многопроцессорном программировании, но устраняет ли она эту потребность, или есть случаи, когда одной неизменности недостаточно? Мне кажется, что вы можете только отложить обработку и инкапсулировать состояние настолько...

37
Почему ответственность за обеспечение безопасности потоков при программировании на GUI лежит на вызывающей стороне?

Во многих местах я видел, что каноническая мудрость 1 заключается в том, что вызывающая сторона несет ответственность за обеспечение того, чтобы вы были в потоке пользовательского интерфейса при обновлении компонентов пользовательского интерфейса (в частности, в Java Swing, что вы находитесь в...

36
Существуют ли устаревшие методы многопоточного и многопроцессорного программирования, которые я больше не должен использовать?

В первые дни FORTRAN и BASIC, по существу, все программы были написаны с заявлениями GOTO. Результатом стал код спагетти, а решение - структурированное программирование. Точно так же указателям может быть сложно контролировать характеристики в наших программах. C ++ начинался с множества...

33
Может ли кто-то объяснить простыми словами, что такое разрушитель?

Я хотел бы, чтобы вы могли объяснить мне простым способом, как работает скороговорка. Эта концепция была неуловима для меня, как известно. Возможно, с вашей помощью я мог бы понять...

33
Как бы вы практиковали параллелизм и многопоточность? [закрыто]

Я читал о параллелизме, многопоточности и о том, как «бесплатный обед закончился» . Но у меня еще не было возможности использовать МТ в своей работе. Таким образом, я ищу предложения о том, что я мог бы сделать, чтобы получить некоторую практику CPU MT с помощью упражнений или участия в некоторых...

33
Почему не зеленые нити?

Хотя я знаю, что вопросы по этому вопросу уже были рассмотрены (например, https://stackoverflow.com/questions/5713142/green-threads-vs-non-green-threads ), я не чувствую, что получил удовлетворительный ответ , Вопрос в том, почему JVM больше не поддерживает зеленые потоки? Об этом говорится в...

31
GCC умирает без поддержки потоков в Windows? [закрыто]

Мне нужно мнение. GCC всегда был очень хорошим компилятором, но в последнее время он теряет «привлекательность». Я только что обнаружил, что в Windows GCC нет std::threadподдержки, заставляющей пользователей Windows использовать другой компилятор, потому что самая захватывающая функция все еще...