384  11.     

 enqueue ()      ,  
dequeue ()      .       -
  Mutex.      11.4.

//  11.4.   enqueue()  dequeue()

template<class T> bool x_queue<T>::enqueue(T Object)
{

Mutex.lock() ;

EventQ.push(Object) ;

Mutex.unlock() ;

}

template<class T> T x_queue<T>::dequeue(void)
{

T Object;

//. . .

Mutex.lock() ;

Object = EventQ.front()

EventQ.pop() ;

Mutex.unlock() ;

//. . .

re turn(Object) ;

i

    (    
 )   .   (. . 11.1)  
 ,      .  mutex   . 
    pthread_mutex_lock (), pthread_mutex_unlock (),
pthread_mutex_init()  pthread_mutex_trylock().  x_queue  -
 ,       
queue<T>.  ,     push ()  pop () -
 enqueue ()  dequeue ().        
     Mutex. lock ()  Mutex. unlock ().
          -
  pthread_mutex_t*  pthread_mutexatfcr_t*,   
       Pthread.   
        
queue<T>.     mutex   ,    -
   ,      .

 pvm_stream (. . 11.1)    , -
    (  )    )' .  -
 ""    ,        -
     . ,   
mutex    pvm_st ream    .

//  11.5.   pvm_stream

class pvm_stream{
protected:

mutex Mutex;

int Taskid;

int Messageld;

//. . .
public: