基本上我有兩個我想並行運行的套接字,所以我不必等待一個套接字發送數據從另一個接收數據等。 我可以通過分叉,但是,爲了更整潔,我想知道是否有辦法通過同一個過程來完成。C語言:並行線程?
喜歡的東西:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void test(){
sleep(5000);
}
int main(int argc, char *argv[])
{
printf("%d\n",time(NULL));
test();
printf("%d\n",time(NULL));
system("PAUSE");
return 0;
}
但輸出的兩條線是一樣的,正在處理的睡眠功能是「別的地方」。
我發現了一個關於創建線程的MSDN文檔,但它談到了C庫函數不安全,它讓我擔心,我喜歡我的stdlib!所以,是的,如果你有任何例子,你可以使用sleep()作爲佔位符,我對套接字很好:)我在Windows上,但是Unix版本也不錯,或更好的,一個與兩者兼而有之的。
編輯:感謝您的所有答覆。 我想我明白你的意思了:我有我的兩個套接字,然後我調用select(),它返回所有準備好接收/發送數據的套接字,我發送/接收我的數據,然後循環返回。 但是,我怎樣才能實現這與accept(),因爲套接字尚未創建?
正是!我寧願儘量遠離線程。對於使用異步I/O的I/O綁定任務似乎要容易得多。 – 2011-05-05 16:40:27