4.11.      173

4.11.1.   

         
  . :      () -
   ()      .  
    ,    ,  -
  .        -
   ,   .   
     .    ,   -
      .     -
         4.5.

//  4.5.  1:   
//                  
//              ()

//. . .

pthread_mutex_t Mutex = PTHREAD_MUTEX_INITIALIZER

int AvailableThreads

pthread_t Thread[Max_Threads]

void decrementThreadAvailability(void)

void incrementThreadAvailability(void)

int threadAvailability(void);

//  .
{

//. . .
if(sysconf(_SC_THREAD_THREADS_MAX) > 0){

AvailableThreads = sysconf(_SC_THREAD_THREADS_MAX)
}
else{

AvailableThreads = Default
}

int Count = 1 ;

 while(   )
if(threadAvailabilityO){
Count++

decrementThreadAvailability()
 
switch( )
{

case X :

pthread_create(&(Thread[Count])...taskx...)
case Y :

pthread_create(&(Thread[Count])...taskY...)
case Z :

pthread_create(&(Thread[Count])...taskz...)
//. . .
}
}
else{

//   .
}
 