Сейчас на форуме: (+4 невидимых) |
eXeL@B —› Программирование —› Формат для передачи данных между потоками |
<< . 1 . 2 . 3 . |
Посл.ответ | Сообщение |
|
Создано: 02 января 2020 21:54 · Личное сообщение · #1 |
|
Создано: 07 января 2020 00:18 · Личное сообщение · #2 |
|
Создано: 07 января 2020 00:30 · Личное сообщение · #3 galenkane пишет: Защита в том, что данные будут в разных местах Не бывает абстрактных данных, их все равно придется использовать и да, подобная "защита" безусловно может кому-то затруднить задачу их нахождения и считывания но на тех этапах которые в принципе никому не будут интересны, поэтому писать такое может и имеет смысл, но использовать, имхо нет... |
|
Создано: 07 января 2020 00:56 · Личное сообщение · #4 |
|
Создано: 07 января 2020 01:27 · Личное сообщение · #5 difexacaw пишет: Я всё равно не понял какая задача. Честно, я не погружаюсь в то, что надо тс в конечном итоге. Я лишь даю советы, руководствуясь только тем, что ему надо конкретно сейчас ) rmn пишет: data-flow граф разрушить и раскидать ноды по разным потокам Защита ещё круче, если раскидать ноды по разным процессам Но сначала предстоит точно долгий путь нахождения способа, как правильно это сделать в разных потоках... ----- IZ.RU |
|
Создано: 07 января 2020 05:44 · Личное сообщение · #6 |
|
Создано: 07 января 2020 11:45 · Личное сообщение · #7 galenkane пишет: предложите, что лучше Здесь никто в создании любого рода защит всерьез помогать не станет | Сообщение посчитали полезным: Orlyonok |
|
Создано: 07 января 2020 11:46 · Личное сообщение · #8 |
|
Создано: 07 января 2020 15:36 · Личное сообщение · #9 |
|
Создано: 07 января 2020 21:38 · Личное сообщение · #10 Ну как я и писал выше - тс занимался хернёй по "хранению на стеке" *уй пойми чего. Для этой задачи делается диспетчер, который управляет выполнением базовых блоков, т.к. в общем случае они не являются независимыми, а выполняются строго в определённом порядке. Потому делается объект (по паттерну синглтона Мейерса), доступный из любого потока. Вызывается его GetInstance, и выполняется базовый блок. Код базовых блоков должен быть предварительно преобразован, чтобы в контексте разных потоков диспетчер мог работать с локальными переменными. С глобальными он будет работать без модификаций. В общем, как-то так, ну а дальше - детали реализации. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 08 января 2020 13:09 · Личное сообщение · #11 |
|
Создано: 08 января 2020 13:22 · Личное сообщение · #12 galenkane Если в вашем коде есть обращение к локальной переменной, то она лежит на стеке, и адресуется через esp/rsp - смещение. (или плюс отрицательное - как вам удобнее), но при переключении контекстов разные потоки будут иметь разное значение для этого самого esp/rsp. Вот это и нужно учитывать после нахождения кода базового блока. Т.е. нашли границы блока, дизассемблировали блок, преобразовали, стёрли оригинал. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 08 января 2020 16:30 · Личное сообщение · #13 Как напишете готовый продукт, не забудьте выложить. А пока закрыто, с защитами сами разбирайтесь. | Сообщение посчитали полезным: Orlyonok |
<< . 1 . 2 . 3 . |
eXeL@B —› Программирование —› Формат для передачи данных между потоками |
Эта тема закрыта. Ответы больше не принимаются. |