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

31
Когда вам понадобятся «сотни тысяч» тем?

Erlang, Go и Rust так или иначе заявляют, что поддерживают параллельное программирование с дешевыми «потоками» / сопрограммами. В Go Справка гласит: Целесообразно создавать сотни тысяч подпрограмм в одном и том же адресном пространстве. Rust Учебник говорит: Поскольку задачи значительно дешевле в...

30
Ложное объяснение пробуждений звучит как ошибка, которую просто не стоит исправлять, верно?

Согласно статье в Википедии о ложных пробуждениях msgstr "поток может быть выведен из состояния ожидания, даже если ни один из потоков не сигнализировал об условной переменной". Хотя я знаю об этой «функции», я никогда не знал, что на самом деле вызвало ее, пока, в той же статье «Ложные пробуждения...

26
Изведены многопоточными ошибками

В моей новой команде, которой я управляю, большая часть нашего кода - это платформа, сокет TCP и код сети http. Все на С ++. Большая часть этого произошла от других разработчиков, которые покинули команду. Нынешние разработчики в команде очень умные, но в основном младшие с точки зрения опыта. Наша...

25
UML-диаграммы многопоточных приложений

Для однопоточных приложений мне нравится использовать диаграммы классов, чтобы получить представление об архитектуре этого приложения. Этот тип диаграммы, однако, не очень помог при попытке понять многопоточные / параллельные приложения, например, потому что разные экземпляры класса «живут» в...

25
Что вы ищете при отладке тупиков?

Недавно я работал над проектами, которые интенсивно используют многопоточность. Я думаю, что я в порядке при разработке их; максимально использовать дизайн без сохранения состояния, блокировать доступ ко всем ресурсам, которые нужны более чем одному потоку, и т. д. Мой опыт в функциональном...

24
Что предотвращает состояние гонки на замке?

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

24
Конечные автоматы против потоков

Алан Кокс однажды сказал: «Компьютер - это конечный автомат. Потоки предназначены для людей, которые не могут программировать конечные автоматы». Поскольку прямое обращение к Алану - это не вариант для меня, я бы предпочел спросить: как можно достичь многопоточности в языке высокого уровня,...

23
Многопоточность: я делаю это неправильно?

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

23
Вопрос о многопоточном синхронизации: найдите n слов по заданным m темам

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

23
Почему многопоточность часто предпочтительнее для повышения производительности?

Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 7 лет назад . У меня вопрос, почему программисты любят параллельные и многопоточные программы вообще. Я рассматриваю 2 основных подхода: асинхронный подход,...

21
Как бы вы объяснили многопоточность семилетнему ребенку?

Locked . Этот вопрос и его ответы заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. Если вам нужно объяснить многопоточность семилетнему ребенку, как бы вы это сделали? Я недавно получил этот вопрос в...

19
Почему общее состояние ухудшает производительность?

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

19
Почему сопрограммы вернулись? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 2 года назад . Большая часть основы для сопрограмм произошла в 60-х / 70-х годах, а затем...

18
Можете ли вы объяснить, почему нескольким потокам требуются блокировки на одноядерном процессоре?

Предположим, что эти потоки работают в одноядерном процессоре. В качестве процессора выполняется только одна инструкция за один цикл. То есть, даже думал, что они разделяют ресурс процессора. но компьютер обеспечит один раз одну инструкцию. Так что блокировка не нужна для...

17
Программы, которые утверждают, что они не «многоядерные» дружественные

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

17
Использование постоянных структур данных в нефункциональных языках

Языки, которые являются чисто функциональными или почти чисто функциональными, извлекают выгоду из постоянных структур данных, потому что они неизменны и хорошо соответствуют стилю функционального программирования без сохранения состояния. Но время от времени мы видим библиотеки постоянных структур...

16
Решения для асинхронного повторного входа C # 5

Итак, меня что-то беспокоило в связи с новой поддержкой асинхронности в C # 5: Пользователь нажимает кнопку, которая запускает асинхронную операцию. Вызов немедленно возвращается, и насос сообщений снова начинает работать - вот и весь смысл. Таким образом, пользователь может снова нажать кнопку -...

16
Как асинхронная поддержка C # 5 поможет с проблемами синхронизации потоков пользовательского интерфейса?

Я где-то слышал, что C # 5 async-await будет настолько крутым, что вам не придется беспокоиться об этом: if (InvokeRequired) { BeginInvoke(...); return; } // do your stuff here Похоже, что обратный вызов операции ожидания произойдет в исходном потоке вызывающей стороны. Эрик Липперт и Андерс...

16
Как я могу сделать универсальную конструкцию более эффективной?

«Универсальная конструкция» - это класс-оболочка для последовательного объекта, который позволяет его линеаризовать (условие строгой согласованности для параллельных объектов). Например, вот адаптированная конструкция без ожидания в Java из [1], которая предполагает существование очереди без...

16
Каковы лучшие ресурсы для изучения параллелизма и многопоточных приложений? [закрыто]

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