簡體   English   中英

Pthread-執行時間

[英]Pthread - time of execution

為什么變量a不假定值0或-1而是0和1?

pthread_mutex_t stop = PTHREAD_MUTEX_INITIALIZER;
int a = 1;

void* decrement(void* arg)
{ 
    pthread_mutex_lock(&stop);
    if(a > 0) { a--; } 
    pthread_mutex_unlock(&stop);
    pthread_exit(NULL);
}

int main()
{
    pthread_t tid, tid1;
    pthread_attr_t tattr;
    pthread_attr_init(&tattr);
    pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED);
    pthread_create(&tid, &tattr, decrement, NULL);
    pthread_detach(tid);
    pthread_create(&tid1, &tattr, decrement, NULL);
    pthread_detach(tid1);   
    cout << a << endl;
}

由於這一行:

if(a > 0) { a--; }

如果a等於或小於0時​​不遞減,則a不能等於-1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM