150  4.  ++-   

}
}
}

  4.3      .  
taski   ,      
,      .   task2  
.    pthread_setcancelstate()  -
,        .  -
     PTHREAD_CANCEL_ASYNCHRONOUS.
- ,        
  ,   ,     -
   .         
 , ,     " " . -
,         
,    task2  .    , 
    ,      .   task3
   ,     -
  PTHREAD_CANCEL_DEFFERED.      -
     , ,   
pthread_setcancel state ()  pthread_setcanceltype ()  .
          -
   ,  .     
 pthread_testcancel ().      , 
     ,     
  pthread_testcancel () (  ).   task3
 pthread_cancel ()    ,   Count
     100. ,    -
 ,    ,     .

 4.4   ,     -
   .

//  4.4

int main(int argc, char *argv[])
{

pthread_t Threads[ 3 ] ;

void * Status;

pthread_create(&(Threads[0]),NULL,taski,NULL) ;

pthread_create(&(Threads[1]).NULL,task2.NULL) ;

pthread_create(&(Threads[2]),NULL,task3,NULL) ;

pthread_cancel(Threads[0]) ;

pthread_cancel(Threads[1]) ;

pthread_cancel(Threads[2]) ;

for(int Count = 0;Count < 3;Count++)
{

pthread_join(Threads[Count],&Status) ;

if(Status == PTHREAD_CANCELED){

cout  ""  Count  " ."
 endl;

}