今天寫了個程式,但是很鬱悶的是沒有得到預想的結果:
pthread_t tid;
int main(void)
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, pthread_create_detached);
pthread_create(&attr, &tid, func, null);
pthread_attr_destroy(&attr);
printf("main route exit./n");
return 0;
void * func(void *args)
int i=0;
for(; 1;)
printf("thread: i is %d/n", i);
return ((void *)0);
執行結果為,一直列印thread:i,過了1s左右,列印main route exit.然後所有列印結束了。
但是用detach方法新建thread,不是應該和主線程分離的麼?想不同了。
ok, 還是貼一下pthread常用的幾個方法,以免遺忘了。
#include
int pthread_create(struct pthread_attr_t *, pthread_t *, void *f*(void *), void *);
建立乙個執行緒,f為執行緒函式。預設情況下執行緒屬性為joinable,即當主線程退出時,執行緒也會退出。
int pthread_join(pthread_t, void **);
主線程阻塞直到這個thread結束後才繼續往下走。這裡第二個引數接收執行緒退出的返回值。
int pthread_exit(void);
執行緒自己主動退出。
int pthread_cancel(pthread_t);
被動退出。乙個執行緒結束另外乙個執行緒的執行。這裡包括同步退出(預設),即執行緒立刻結束。
以及非同步退出,即執行緒直到下乙個cancellation point才退出。執行緒可以設定這樣的cancellation point,
當然也可以設定為不被其他執行緒命令退出。
int pthread_self(void);
得到自己的thread id。
編譯時需要加上-lpthread選項。
另外,發現c99不允許在for中直接宣告變數,厄。。。
SeekBar的基本使用方法
seekbar的基本使用方法 a 什麼是 seekbar b 使用 seekbar 的步驟 i.在布局檔案當中宣告seekbar android layout width fill parent android layout height wrap content ii.實現 onseekbarch...
標籤的基本使用方法
用於執行中從opencms vfs動態包含檔案,包含的檔案被當成乙個請求的附加引數。使用一下一些屬性來標識要包含的物件檔名稱 如果這些屬性都沒有設定,標籤的標籤體將使用別的方法得到檔名稱.注意 如果不能通過上訴方法得到包含的檔名稱,就會呼叫 當前cmsrequestcontext的 geturi 方...
grep的基本使用方法
選項 color 高亮顏色顯示 i 忽略大小寫 v 不匹配查詢 o 只顯示被模式匹配的字串 拓展 別名設定 alias grep grep color 萬用字元 任意長度任意字元 任意單個字元 指定範圍內 指定範圍外的 grep的正規表示式 元字元 表示任意單個字元 匹配次數 匹配其前面字元任意次數...