我是從我們哪裏知道,在pthread_create()
函數傳遞NULL
爲第二個參數時,線程是由可連接的要求。並行線程POSIX的C庫detachstate
我的意思是,我知道那個人頁面狀態,這樣,但是在代碼的理由是要求。 我知道,當NULL
傳遞中,將使用默認的屬性:
const struct pthread_attr *iattr = (struct pthread_attr *) attr; if (iattr == NULL) /* Is this the best idea? On NUMA machines this could mean accessing far-away memory. */ iattr = &default_attr;
我知道,它應該是介於pthread庫的代碼,但我不知道確切位置。
我知道的default_attr
的定義是pthread_create.c:
static const struct pthread_attr default_attr = { /* Just some value > 0 which gets rounded to the nearest page size. */ .guardsize = 1, };
,但我不知道什麼地方正好在代碼表示,這導致可連接的線程。
在此先感謝。
同樣,在你前面的問題似乎有很多混亂的地方節目的某種行爲的擔保來自。 POSIX(以及POSIX線程)是一個國際標準,它規定了相應編寫的程序的行爲。你不會在代碼中找到'pthread_create'調用的語義,但是在標準中。在你最喜歡的搜索引擎中搜索「opengroup」和「pthread_create」,你應該找到正式的規範。 –
好吧,我明白了。但是,當我的老師問我關於源代碼合理性的問題時,我該說什麼?我的意思是,當我說沒有可以證明的代碼時,恐怕只有POSIX規範,這並不是全部的真相,這可能對我造成嚴重影響。) – user1991012
不要怕你的老師。如果他提出這樣的要求,他應該在代碼中說明他的意思。其實這通常是你應該問他的問題,而不是我們。 –