Многопоточная структура данных: параллельный стек - PullRequest
0 голосов
/ 16 июля 2010

Я ищу реализацию C параллельного стека (например, протокола Cilk THE), который позволил бы основному потоку выдвигать и извлекать (например, операция pop была бы в начале стека) и удаленный поток к pop (эта операция pop будет в конце стека) со всеми необходимыми мерами предосторожности.

Если нет кода, будет полезен любой совет по реализации.

Thx!

Ответы [ 2 ]

1 голос
/ 16 июля 2010

Я бы взял обычный стек и обернул бы функции push и pop мьютексами.

В psuedo-C:

void push(void *data)
{
    acquire_lock(mutex);
    stack_push(data)
    release_lock(mutex);
}

Добавить проверку ошибок и соль по вкусу.

0 голосов
/ 20 сентября 2011

Библиотека NOBLE , похоже, то, что я искал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...