Постоянные локальные переменные потока

Тема в разделе "WASM.BEGINNERS", создана пользователем Sercher, 6 июл 2011.

  1. Sercher

    Sercher New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    59
    Здравствуйте.
    Один поток создает группу других потоков, хотелось бы чтоб в каждом потоке были свои локальные переменные и массивы(фиксированного размера =126 байт в общем), естественно первым делом подумал что в каждом созданном потоке выделять через кучу свой блок памяти и хранить в нем данные, но при использовании кучи пришлось синхронизировать потоки (при обращении к одной и той же кучи с запросам добавления/удаления памяти, она рушиться) теряя в производительности, создавать каждый раз новую кучу для каждого нового потока накладно. Отсюда два вопроса:
    1-Знаю что при создании потока под него резервируется стэк, кто знаем можно ли его использовать для хранения локальных перемены?
    2-Если разместить данные в коде функции например так:
    proc AES128CBCDecrypt
    ;код
    mov rcx,pOpenTxt
    ....
    ;
    ret
    ;data
    qinivector dq 0
    .....
    ;
    endp
    Данные в data будут уникальны для каждого созданного потока этой функции? Допустимо ли размещать таким образом данные в функции?
     
  2. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    На дне стека нужно зарезервировать место, например Enter 0x80,0.
     
  3. Sercher

    Sercher New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    59
    Спасибо помогло, правда надо теперь за его выравниванием следить, но это уже совсем другая история.