推 askacis: 你跑在userspace,kernelspace while(1)又不讓渡會很慘XD 09/26 02:04
我修改了 http://sp1.wikidot.com/pthread 成類似你的寫法。
在 linux 上可以正常執行 printf("Mary\n");
gcc p.c -pthread
#include <pthread.h> // 引用 pthread 函式庫
#include <stdio.h>
void *print_george(void *argu) { // 每隔一秒鐘印出一次 George 的函數
while (1) {
//printf("George\n");
//sleep(1);
}
return NULL;
}
void *print_mary(void *argu) { // 每隔一秒鐘印出一次 Mary 的函數
while (1) {
printf("Mary\n");
//sleep(2);
}
return NULL;
}
int main() { // 主程式開始
pthread_t thread1, thread2; // 宣告兩個執行緒
pthread_create(&thread1, NULL, &print_george, NULL); // 執行緒
print_george
pthread_create(&thread2, NULL, &print_mary, NULL); // 執行緒 print_mary
while (1) { // 主程式每隔一秒鐘
//printf("----------------\n"); // 就印出分隔行
//sleep(1); // 停止一秒鐘
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.61.61
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1411644344.A.45A.html
※ 編輯: descent (60.248.61.61), 09/25/2014 19:26:58