libuv

    1热度

    1回答

    这是一个关于JavaScript内部的问题。 可以说我有10个异步任务,都需要x秒的时间才能运行。在等待回应时,脚本闲置。 在后台JavaScript引擎询问“任务队列中是否有任何内容”。据我了解,这是一个循环。因此,事件循环。我知道在Node中这是用Libuv实现的。我已阅读这篇文章,它有点解释:https://nikhilm.github.io/uvbook/basics.html JavaS

    1热度

    2回答

    node.js的documentation描述了其基础事件循环的所谓的阶段。 它明确指出空闲和准备阶段是只在内部使用。 对于node.js的事件循环是libuv之一,不言而喻,这些阶段可能映射到libuv的idle和prepare句柄上。 它们将有助于在组织软件中的任务时拥有更大的粒度。特别是,它们是执行I/O回调和投票阶段之间的唯一方式。 无论如何,他们不是从底层环境出口。 这些阶段被禁止的原因

    2热度

    2回答

    所以这是我的节点是如何工作的理解:其中所有的JS代码执行 单线。 IO /网络调用利用场景后面的线程池。 (使用libuv这是一个C++库) 一旦IO操作完成,它的回调被压入回调队列,并且回调可以被下一个滴答中的事件循环拾取。 我想了解的是如何编写可以利用系统线程的代码?我在C/C++中编写一个库并为此提供一个Javascript绑定? 比方说,我有一些不需要IO但是CPU密集型的操作/功能,所以

    -1热度

    1回答

    假设我有一个处理所有新连接的主循环和几个全部运行它自己的循环的线程。我想分发我的客户到这些循环。 在主线程中创建一个客户端并传递给init函数的另一个循环(它将在另一个线程上运行)并且开始读取是否是线程安全的? 如果没有,该如何实现? (我想一个处理工作队列的空闲函数可以做到这一点......)

    0热度

    1回答

    当我尝试发送一些基本的UDP消息时,它看起来好像不发送它。 我试图运行几个我在网上找到的例子。 我正在使用SocketTest v3.0.0测试服务器/客户端。 当我测试TCP发送一切按预期工作,但我UDP情况下,它根本没有。 你能提供一些非常基本的UDP发送代码片段吗? 例如,接收器将在本地主机上,并且消息将包含“测试”,并且它将固定长度? 我还有一个小问题。它发送消息在本地主机可以应用程序(服

    0热度

    1回答

    我正在测试服务器的libuv。 问题是数据部分到达,我需要等待更多的数据。 (这种情况还没有发生,但我认为这是迫在眉睫,在我的经验) 但这libuv取决于事件的基础上,旁边after_read()函数 不能保证下一个数据包会是剩下的。 我想知道你是如何解决问题的。 谢谢。 加入了解更多信息。 我关心拆分包的情况。 假设客户端A,客户机B,服务器S. A发送100个字节到服务器。 B向服务器发送10

    1热度

    1回答

    我试图运行下面的代码和功能保持第一后返回0,得到: while (true) { int res = uv_run(uv_default_loop(), UV_RUN_ONCE); if (res == 0) printf("ok\n"); } 有没有一种方法来重置循环,所以它会在返回0第二次接收并不会因第一次成功而停滞不前?

    0热度

    1回答

    定义我读了libuv源代码,并发现这些函数声明: void uv_prepare_invoke(uv_loop_t* loop); void uv_check_invoke(uv_loop_t* loop); void uv_idle_invoke(uv_loop_t* loop); 定义在internal.h。 但我找不到函数体,为什么?

    0热度

    1回答

    例如,我发送的缓冲区有20K字节(用户列表)。 我想知道uv_write()是否可以一次发送20K字节,而不是sepearted。 那么回调函数after_write_cb会返回成功的状态0吗? 也就是说,发送时不需要关心剩下的剩余物吗?

    1热度

    2回答

    考虑官方documentationlibuv(部分其他实用程序)。 这是uv_buf_init声明: uv_buf_t uv_buf_init(char* base, unsigned int len) 文档状态(重点煤矿): 构造uv_buf_t。 由于平台的差异,用户不能依赖uv_buf_t结构的基本成员和len成员的顺序。 uv_buf_t完成后,用户负责释放基址。返回通过值传递的结构体