synchronizacja międzyprocesowa

0

Czy istnieją jakieś metody podobne do semaforów tyle że między procesami? Mam program z socetami w którym po uruchomieniu funkcji listen rozbijam program na kilka procesów. Moim celem jest sprawienie by funkcja recv była wykonywana jedynie przez jeden z tych procesów? Wszystko przez to, że boję się sytuacji w której wiadomość zostanie odebrana przez dwa procesy.

Chodziło mi o funkcję accept a nie recv.

0

Przy odpalaniu procesu możesz przekazać zmienne przez linię komend. Ewentualnie użyj MPI albo czegoś podobnego.

0

A jaki to system? Pod linuxem możesz używać posixowych semaforów.
http://www.digipedia.pl/man/doc/view/sem_open.3/

1

Pod windows'em, zarowno semafory, jak i mutexy, eventy i wiele innych (ale nie np. sekcje krytyczne!) wystepuja w wersji "małej, anonimowej" wewnatrz procesowej, jak i "dużej, nazwanej" systemowej.

Jeżeli użyjesz jakiegokolwiek API które pozwaja "nazywac" ot zwyklym cstringiem daną rzecz, to możesz byc prawie pewien, ze stworzy to ogólnosystemowy obiekt synchronizacji, widoczny przez wszystkie procesy, byle tylko te procesy używały dla niego dokladnie co do bajtu takiej samej nazwy

1 użytkowników online, w tym zalogowanych: 0, gości: 1