在C中实现异步功能

时间:2015-04-18 22:38:55

标签: c linux asynchronous callback posix

我知道当我使用套接字或文件时我可以将其设置为非阻塞并使用epoll例如创建异步服务器,但我怀疑的是当我没有像发生的文件描述符时例如,使用套接字,想象一下数据库中的查询,如何在不阻塞我的线程的情况下进行查询,并传递类似Node.js上发生的回调

例如:

queryDB("select something from mytable", my_callback);

并且queryDB立即返回。

我怀疑如何使用此行为创建此函数queryDB。

1 个答案:

答案 0 :(得分:1)

如果不引入单独的调用堆栈,则不能异步使用同步接口。顺便说一下,操作系统 是你的I / O线程。

启动单个线程,从原子队列弹出查询,发出完成信号。