3 / 3 / 0
Регистрация: 22.07.2014
Сообщений: 209
|
|
Синхронизация потоков без объектов ядра - возможно ли?26.06.2015, 16:04. Показов 1917. Ответов 1
Метки нет Все метки)
(
Нужно решить такую задачу: синхронизировать два потока барьером, с помощью asm вставок в код в более высокоуровневом языке, тоесть будет два потока инструкций которые доходя до asm будут с помощью него опрашивать друг друга на состояние флагов, waitforsingleobject использовать запрещено условием. Я не понимаю как доступны друг другу регистры в параллельных потоках, если у кого то есть литература поделитесь пожалуйста.
0
|
26.06.2015, 16:04 | |
Ответы с готовыми решениями:
1
Синхронизация на базе объектов ядра Синхронизация потоков без использования mutex Синхронизация потоков на элементарном уровне (переключение потоков) |
Ушел с форума
![]() ![]() |
|
27.06.2015, 09:15 | |
Можно написать что-то типа спин-блокировки на инструкциях cmpxchg.
Гуглите "CAS", "compare and set", "compare and swap" и т.п. Принцип работы: поток, который захватывает блокировку, в цикле выполняет операцию compare-and-swap, пока она не будет выполнена успешно. С этого момента блокировка считается захваченной. Освобождение блокировки проще, нужно лишь вернуть в переменную исходное значение (лучше с помощью одной из специальных инструкций, например xchg, а не mov). Это, конечно, не настоящий спин-лок (в настоящих используются "смягчающие" чтения, инструкции pause, специальные алгоритмы планирования и т.д.), но он полностью корректный и работать будет. А почитать советую Intel и AMD Developers Manuals, они есть на официальных сайтах Intel и AMD в свободном доступе. Ну и вот, для общего развития: Test-And-Test-And-Set Lock https://askldjd.wordpress.com/... -set-lock/ TTAS Spinlock with Yield https://askldjd.wordpress.com/... ith-yield/
1
|
27.06.2015, 09:15 | |
Помогаю со студенческими работами здесь
2
Ожидание завершения потоков ядра Синхронизация потоков
Синхронизация потоков Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
Квантовые алгоритмы и обработка строк в Q#
EggHead 07.06.2025
Квантовые вычисления перевернули наше представление о том, как работать с данными, а Q# стал одним из ключевых языков для разработки квантовых алгоритмов. В традиционых системах мы оперируем битами —. . .
|
NUnit и C#
UnmanagedCoder 07.06.2025
В . NET существует несколько фреймворков для тестирования: MSTest (встроенный в Visual Studio), xUnit. net (более новый фреймворк) и, собственно, NUnit. Каждый имеет свои преимущества, но NUnit. . .
|
с++ Что нового?
russiannick 06.06.2025
Продолжаю обзор dev-cpp5. 11. Посмотрев на проекты, предоставленные нам для обучения, становится видно, что они разные по содержащимся файлам
где:
. dev обязательно присутствует
. cpp/ . c один из них. . .
|
WebAssembly в Kubernetes
Mr. Docker 06.06.2025
WebAssembly изначально разрабатывался как бинарный формат инструкций для виртуальной машины, обеспечивающий высокую производительность в браузерах. Но потенциал технологии оказался гораздо шире - она. . .
|
Как создать первый микросервис на C# с ASP.NET Core, step by step
stackOverflow 06.06.2025
Если говорить простыми словами, микросервисная архитектура — это подход к разработке, при котором приложение строится как набор небольших, слабо связанных сервисов, каждый из которых отвечает за. . .
|
Рисование коллайдеров Box2D v2 на Three.js с помощью порта @box2d/core
8Observer8 06.06.2025
Используется порт Box2D v2 под названием @box2d/ core - пакет NPM. Загрузил документацию Box2D v2 на Netlify: https:/ / box2d-v2-docs. netlify. app/ Документацию Box2D v2 можно скачать с официального. . .
|
Как создать стек в Python
AI_Generated 05.06.2025
Как архитектор с более чем десятилетним опытом работы с Python, я неоднократно убеждался, что знание низкоуровневых механизмов работы стеков дает конкурентное преимущество при решении сложных задач. . . .
|
Server-Sent Events (SSE) в Node.js
run.dev 05.06.2025
Потоковая передача данных с сервера прямо в браузер стала повседневной потребностью - от биржевых графиков и спортивных трансляций до чатов и умных дашбордов. Много лет разработчики полагались на. . .
|
Создаем RESTful API на Golang с Fiber
golander 04.06.2025
Я перепробовал десятки фреймворков для создания RESTful API за последние годы, и когда впервые столкнулся с Fiber, понял, что это совсем другой уровень. Нет, я не собираюсь рассказывать сказки о. . .
|
Как работать с куки в ASP.NET Core
UnmanagedCoder 04.06.2025
Когда я впервые начал работать с куки в ASP. NET Core, меня поразило, насколько отличается работа с ними от классического ASP. NET. В Core все стало более декомпозированным - больше нет удобного. . .
|