Запитання з тегом «multithreading»

Питання, пов'язані з різними нитками, включаючи техніку, структуру та питання безпеки.

1
Взаємодія малювання ниток
Я хотів би намалювати взаємодію ниток (пером та олівцями) у позначеннях UML (-подобних). Я не наполягаю на UML, все, що очевидно для читача, має робити. Я почав із діаграм послідовностей, але не вважаю, що це найкращий спосіб зробити це. Увесь час з'являлися "ініціатори дій" з екрану, які начебто порушують ідею …

8
Які уроки ви засвоїли з проекту, який майже / насправді провалився через погану багатопотоковість? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 6 років тому . Які уроки ви засвоїли з проекту, який майже / насправді провалився через погану багатопотоковість? …

2
Скільки роблять ниток для використання?
Коли я (заново) будую великі системи на настільному / портативному комп'ютері, я кажу makeвикористовувати декілька потоків для прискорення швидкості компіляції, наприклад: $ make -j$[ $K * $C ] Де $Cповинен вказати число ядер (які ми можемо припустити , щоб бути числом з однією цифрою) машина має, а $Kто , що …

2
Як безпека потоку може бути забезпечена мовою програмування, подібною до того, як забезпечується безпека пам'яті Java та C #?
Java та C # забезпечують безпеку пам’яті, перевіряючи межі масиву та відмітки вказівника. Які механізми можуть бути впроваджені в мову програмування для запобігання можливості гоночних умов та тупиків?

2
Чому програмісти визначають моделі програмування для заміни C / POSIX на паралелізм?
Постачальники нових комп'ютерних архітектур регулярно намагаються впроваджувати нові моделі програмування, наприклад, нещодавно CUDA / OpenCL для GPGPU, і витісняють C / POSIX як інтерфейс управління до паралелізму платформи. (Poss & Koening, AM3: На шляху до апаратного прискорювача Unix для багатьох ядер, 2015) Чому дизайнери архітектури намагаються розробити нові моделі програмування …

1
Черга повідомлень для RTOS для мікроконтролерів
Я зараз пишу RTOS для мікроконтролерів. Вся справа написана на C ++ 11 - якщо хтось зацікавлений, а посилання на сховище знаходиться внизу. В даний час я пишу клас, який є простою чергою даних для передачі об'єктів між потоками (або між обробниками переривань і потоками або обробниками переривань та іншими …


1
Концептуально що це означає, коли кажуть, що кожна нитка отримує свій стек?
Я читав Java Concurrency в практиці Брайана Геца, і всередині розділу Staff Confinement зазначається, що кожен потік отримує власний стек, і тому локальні змінні суттєво обмежуються виконавчим потоком; вони існують у виконанні стека потоків, який недоступний для інших потоків. Що він означає, що кожен потік має свій стек виконання?

3
Шукаєте схему розподіленого блокування
Мені потрібно придумати спеціальний рекурсивний механізм блокування об'єктів \ шаблон для розподіленої системи в C #. По суті, у мене є багатовузлова система. Кожен вузол має ексклюзивні дозволи на запис для n -численних фрагментів стану. Цей же стан також доступний у формі лише для читання принаймні на одному іншому вузлі. …

6
Якщо я використовую блокування, чи може мій алгоритм все-таки бути без блокування?
Поширене визначення безблокового замовлення - це те, що принаймні один процес робить прогрес. 1 Якщо у мене є проста структура даних, така як черга, захищена блокуванням, то один процес завжди може досягти прогресу, оскільки один процес може придбати замок, зробити все, що хоче, і звільнити його. То чи відповідає воно …

6
Чи використовують нитки віртуальної пам'яті чи реальної пам'яті?
Я намагався оптимізувати свій сервер Linux для обробки 10000 потоків за процес, а зараз це лише 382. Згідно з цією статтею, для з'ясування загальних можливих потоків використовується наступна формула: number of threads = total virtual memory / (stack size*1024*1024) Це означає, що потоки зберігають усі свої дані у віртуальній пам'яті. …

6
Чому нитки називають нитками?
Я розумію, що це обробка одиниці володіння ресурсами та виконуваних інструкцій. Нитки дозволяють процесу обмінюватися своїми ресурсами з кількома виконаннями, а ОС легше планувати потоки через усі накладні витрати, пов'язані з цілими процесами. Але чому нитка імені ? Чи має якесь посилання на рядок або переплетення виконання? Тим не менш, …

1
Багато блокуючих одноразових неблокуючих працівників VS
Припустимо, є HTTP-сервер, який приймає з’єднання, і тоді він якось чекає повного надсилання заголовків. Цікаво, який найпоширеніший спосіб його реалізації та які ще інші плюси та мінуси. Я можу лише думати про це: Багато блокуючих працівників хороші тим, що: Він більш чуйний. Простіше запровадити нові з'єднання (працівники підбирають їх самі, …

3
IPC без блоку в Linux для багатоядерних процесорів
Я намагаюся знайти спосіб написати додаток з незаблокованим IPC на Linux, в C, з багатоядерними процесорами. Припустимо, у мене є процес 1 і процес 2, які записуються у FIFO або спільну пам'ять. Потім процес 3 і процес 4 будуть зчитуватися з цієї спільної пам'яті або FIFO. Це можливо за допомогою …

1
Нитки: потоки ядра проти потоків, що підтримуються в ядрі, порівняно з потоками на рівні користувача?
Хтось знає, в чому різниця між ними? Мені здається, що нитки ядра відповідають коду, який керує ядром (інтуїтивно), але я не впевнений у двох інших ... Також, чи вважатиметься стандарт pthreads рівнем користувача та підтримує ядро, оскільки ви отримуєте доступ до бібліотеки, тоді як ядро ​​виконує планування / комутацію потоків?
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.