基本上我有两个我想并行运行的套接字,所以我不必等待一个套接字发送数据从另一个接收数据等。 我可以通过分叉,但是,为了更整洁,我想知道是否有办法通过同一个过程来完成。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