Синхронизация (кэш)?

4 messages Options
Embed this post
Permalink
Илья Абдрахимов

Синхронизация (кэш)?

Reply Threaded More More options
Print post
Permalink
Hello spf-dev,

  Собственно хотелось просить совета (помощи).
  Требуется синхронизировать передачу данных между 2-мя потоками, при
  этом 1-й поток (приоритеный) только добавляет данные в буфер (кэш),
  2-й эти данные обрабатывает и удаляет из буфера.
  Понимаю, что буфер надо организовать по принципу FIFO.
  Есть у кого идеи (намётки)?
 

--
Best regards,
 Илья                          mailto:[hidden email]



Ruvim Pinka

Re: Синхронизация (кэш)?

Reply Threaded More More options
Print post
Permalink
День добрый!

Самое простое — воспользоваться системными пайпами (особенно, если
данные представляют собой поток октетов).

REQUIRE CreatePipe ~ac\lib\win\process\pipes.f

: new-pipe ( -- h-read h-write )
  { \ r w }
  0 0 ^ w ^ r  CreatePipe ERR THROW
  r w
;

Для чтения и записи обычные файловые READ-FILE и WRITE-FILE

On 1/31/07, Абдрахимов Илья <[hidden email]> wrote:
>   Требуется синхронизировать передачу данных между 2-мя потоками, при
>   этом 1-й поток (приоритеный) только добавляет данные в буфер (кэш),
>   2-й эти данные обрабатывает и удаляет из буфера.
>   Понимаю, что буфер надо организовать по принципу FIFO.
>   Есть у кого идеи (намётки)?


--
Ruvim
Andrey Cherezov

Re: Синхронизация (кэш)?

Reply Threaded More More options
Print post
Permalink
In reply to this post by Илья Абдрахимов
Добрый день, Абдрахимов Илья!

Ваше сообщение от 31.01.2007 20:56:
>   Собственно хотелось просить совета (помощи).
>   Требуется синхронизировать передачу данных между 2-мя потоками, при
>   этом 1-й поток (приоритеный) только добавляет данные в буфер (кэш),
>   2-й эти данные обрабатывает и удаляет из буфера.
>   Понимаю, что буфер надо организовать по принципу FIFO.
>   Есть у кого идеи (намётки)?
>  
В винде есть встроенные поточные FIFO-очереди, для которых в SPF есть
готовые либы,
например: очередь сообщений потока - ~pinka/lib/multi/messages.f ; пул
потоков (очередь
"заданий на обработку", которую разгребает пул потоков, никто не мешает
иметь там один поток)
~ac/lib/win/thread/pool.f


Илья Абдрахимов

Re: Синхронизация (кэш)?

Reply Threaded More More options
Print post
Permalink
In reply to this post by Илья Абдрахимов
Hello spf-dev,

  Спасибо буду пробовать!

--
Best regards,
Илья                mailto:[hidden email]