0

次のコードで予期しない出力が得られる理由が不思議です: acan get 110...!

pthread_t th[nbT];
void * func(void *d)
{       
    while(a<100)
    {
            pthread_mutex_lock(&l);
            cout <<a <<" in thread "<<pthread_self()<<"\n";
            a+=1;
            pthread_mutex_unlock(&l);
    }  
    return NULL;
 } 
  int main(int argc, const char* argv[])
 {
    for(int i=0;i<nbT;i++)
            pthread_create(&(th[i]), NULL, func, NULL);

    for(int i=0;i<nbT;i++)
            pthread_join(th[i],NULL);
 }
4

1 に答える 1