linux - 当一个数据包在linux网络堆栈中携带时,使用谁的时间片?
问题描述
从手册页来看,当调用 sendto() 以阻塞模式发送数据包时,sendto() 将在数据包从用户空间复制到内核空间(套接字的发送缓冲区)后返回。然后用户空间应用程序继续运行。每个线程都有自己的时间片,如果用户空间应用程序继续运行,必须有另一个内核线程帮助将数据包从套接字的发送缓冲区传送到网络适配器,对吧?但是如果有很多用户app发送数据包,用多少个kthread来承载pkt?用kthread来承载pkt看起来不合理,但是sendto()返回后的故事,如果不是这样,我就看不懂了。
解决方案
推荐阅读
- google-play - 使用购买流程测试 Google Play 实时通知
- c# - XAML DataGrid 与 MultiSelect ComboBox 绑定
- java - 无法启动 Apache TomEE 服务器 - 未找到部署:openejb/Deployer
- c# - 如何从 Program.cs 文件中的 appsettings.json 文件访问数据库连接字符串
- wpf - 对 HTML 和 WPF 视图使用相同的 ViewModel
- pandas - 使用带有自己的函数和参数的 Pandas 数据框 groupby.filter
- c# - .NET Core 没有 OID 值与此名称匹配
- javascript - 节点登录错误:无法获取 /users/auth/login
- winapi - C++ Win32 API - CreateFont():文档示例令人困惑
- r - 在 R 中生成澳大利亚州/领地等值线?