当前位置: 首页 > news >正文

重庆 网站 建设百度公司图片

重庆 网站 建设,百度公司图片,小程序开发需要什么软件,黄石市下陆区建设管理局网站关于 lwIP 多线程的总结#xff1a; lwIP 内核不是线程安全的。如果在多线程环境中使用 lwIP#xff0c;必须使用高层次的 Sequential 或 socket API。使用 raw API 时#xff0c;需要自己保护好应用程序和协议栈核心代码。在无操作系统环境中使用 raw API#xff1a; 使用…关于 lwIP 多线程的总结 lwIP 内核不是线程安全的。如果在多线程环境中使用 lwIP必须使用高层次的 Sequential 或 socket API。使用 raw API 时需要自己保护好应用程序和协议栈核心代码。在无操作系统环境中使用 raw API 使用轮询接收数据因为不会在中断中使用 lwIP 函数不需要任何保护使用中断接收数据需要定义宏 SYS_LIGHTWEIGHT_PROT 来保护 pbuf 和内存分配相关代码。 套接字通常不能被多个应用线程使用因为 UDP 或 TCP 控制块不能在多个线程之间共享。目前在 udp 、netconn 上可以执行 sendto、recv 操作。 可以从 rawapi.txt 文档中看一下关于多线程描述的演进过程。 2002 年 10 月 19 lwIP 提供 2 种应用编程接口API用于与 TCP/IP 代码通讯Sequential API 和 RAW API。 对于 Sequential API它提供了一种普通的、顺序的使用 lwIP 协议栈方法。它与 BSD 套接字 API非常相似。执行模型是基于 open - read - write - close 范式注顺序的由来。由于 lwIP 协议栈本质上是基于事件的因此 TCP/IP 内核代码和应用程序必须位于不同的线程中。 注lwIP 版本大于等于 V0.5 才有 Sequential API。 注 初始版本。 这是 lwIP 的洪荒年代版本大概是 lwip-0.6没有找到具体的版本日期只能从已知的版本日期推测 这个时候还没有关于多线程的描述。 2004 年 10 月 18 lwIP 提供 2 种 应用编程接口API用于与 TCP/IP 代码通讯 低层次的 core、回调 或 raw API高层次的 Sequential API 对于 Sequential API它提供了一种普通的、顺序的使用 lwIP 协议栈方法。它与 BSD 套接字 API非常相似。执行模型是基于阻塞 open - read - write - close 范式。由于 lwIP 协议栈本质上是基于事件的因此 TCP/IP 内核代码和应用程序必须位于不同的线程中。 注 本次更改的版本最早可以在 lwIP-1.1.0 中看到 。与初始版本相比本质上没有改动只是描述更加准确。 2009 年 5 月 7 lwIP 提供 3 种 应用编程接口API用于与 TCP/IP 代码通讯 低层次的 core、回调 或 raw API高层次的 Sequential APIBSD 风格的 socket API 对于 Sequential API它提供了一种普通的、顺序的使用 lwIP 协议栈方法。它与 BSD 套接字 API非常相似。执行模型是基于阻塞 open - read - write - close 范式。由于 lwIP 协议栈本质上是基于事件的因此 TCP/IP 内核代码和应用程序必须位于不同的线程中。 socket API 是一种与现有应用程序指使用 BSD 标准 socket 编写的代码兼容的 API目前它是建立在 Sequential API之上的。socket API 提供在其它平台比如 unix / windows运行 socket API 所需的所有功能。但是由于 Sequential API 的限制可能存在与标准 BSD socket 不兼容问题需要对现有程序进行少量修改。 线程 lwIP 最初仅针对单线程环境。在增加多线程功能时并没有使内核线程安全而是采用了另一种方法用一个主线程称为 tcpip_thread 运行 lwIP 内核。raw API 只能在此线程中使用。使用 Sequential 或 socket API 的应用程序线程通过 消息机制 与主线程通讯。 因此可以从其它线程或 ISR中断 调用的函数列表非常有限只有使用以下头文件中的 API 函数才是线程安全的 api.hnetbuf.hnetdb.hnetifapi.hsockets.hsys.h 此外在使用操作系统的情况下NO_SYS0可以从多个线程不是 ISR调用内存分配或释放函数因为它们由 SYS_LIGHTWEIGHT_PROT 和信号量保护。 从 lwIP-1.3.0 开始如果宏 SYS_LIGHTWEIGHT_PROT 和 LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 都设置为 1则可以从另一个线程或 ISR 调用 pbuf_free()。 注 lwIP-1.3.0 发布于 2008 年 3 月 23,。 本次更改的版本最早可以在 lwIP-1.3.1 中看到。与 lwip-1.1.0 相比最大的更新是 支持 BSD 风格的 socket API以及对 哪些文件是多线程安全的 进行了文档化描述。 关于文档化 lwIP 线程安全要求 这是 Kieran Mansley 提出的一个任务见task #6683起始于 2007 年 3 月 26直到 2009 年 5 月 7 由 Simon Goldschmid 在 rawapi.txt 中添加相关描述才结束。 2015 年 9 月 22 lwIP 提供 3 种 应用编程接口API用于与 TCP/IP 代码通讯 低层次的 core、回调 或 raw API高层次的 Sequential APIBSD 风格的 socket API 对于 raw API有时也称为 原生 API是一种事件驱动的 API在无操作系统的情况下可以实现零拷贝发送和接收。 对于 Sequential API它提供了一种普通的、顺序的使用 lwIP 协议栈方法。它与 BSD 套接字 API非常相似。执行模型是基于阻塞 open - read - write - close 范式。由于 lwIP 协议栈本质上是基于事件的因此 TCP/IP 内核代码和应用程序必须位于不同的线程中。 socket API 是一种与现有应用程序指使用 BSD 标准 socket 编写的代码兼容的 API目前它是建立在 Sequential API之上的。socket API 提供在其它平台比如 unix / windows运行 socket API 所需的所有功能。但是由于 Sequential API 的限制可能存在与标准 BSD socket 不兼容问题需要对现有程序进行少量修改。 多线程 lwIP 最初仅针对单线程环境。在增加多线程功能时并没有使内核线程安全而是采用了另一种方法用一个主线程称为 tcpip_thread 运行 lwIP 内核。如果在多线程环境下使用 lwIP 协议栈raw API 只能在 tcpip_thread 线程中使用因为没有对 raw API 函数做并发访问保护除了 pbuf 和内存管理之外。使用 Sequential 或 socket API 的应用程序线程通过 消息机制 与主线程通讯。 因此可以从其它线程或 ISR中断 调用的函数列表非常有限只有使用以下头文件中的 API 函数才是线程安全的 api.hnetbuf.hnetdb.hnetifapi.hpppapi.hsockets.hsys.h 此外在使用操作系统的情况下NO_SYS0可以从多个线程不是 ISR调用内存分配或释放函数因为它们由 SYS_LIGHTWEIGHT_PROT 和信号量保护。 Sequential 或 socket API 函数针对核心线程tcpip_thread是线程安全的但是在控制块control block粒度上是不可重入的。也就是说在没有适当锁定的情况下 UDP 或 TCP 控制块不能在多个线程之间共享。 如果宏 SYS_LIGHTWEIGHT_PROT 和 LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 都设置为 1则可以从另一个线程或 ISR 调用 pbuf_free()。 注 本次更改的版本最早可以在 lwIP-2.0.0 中看到。 这是对 lwIP-1.3.1 相关文档的改进描述更加准确。关于 多线程的注意事项 也已经完备。后续关于多线程的描述被移动到了 doxygen docs 文档中直到 lwIP-2.1.3 版本也没有什么实质性更新。
http://www.hkea.cn/news/14276619/

相关文章:

  • 网站建设功能列表网站建设是什么专业里的科目
  • 杭州做网站一般多少钱免费收录链接网
  • 安康网站制作公司seo基础知识
  • 珠海营销型网站项目推广方案
  • 网站中页面模板设计网站备案接入商是什么
  • 科技厅哪家公司做推广优化好
  • 网站建设的成果怎么写网站建设实验总结
  • 保险网站建设的目标2023一般纳税人企业所得税怎么算
  • 佛山网站建设网站建设收费苏州网站建设营销
  • 做网站设计师能10年赚100万吗电商网站怎样做
  • 个人免费网站建站运营建设银行个人网上银行网站加载
  • 网站建设开发方案wordpress主题显示不完整
  • 展示网站重庆市工程建筑造价信息网
  • 大的网站建设公司好网站建站在线制作
  • 摄影展示网站源码领地网做网站咋加文章
  • 大众汽车网站建设南宁网站建设加q.479185700
  • 娄底市住房和城乡建设局网站wordpress 自定义链接地址
  • 公司建设网站费用怎么记账深圳蕾奥规划设计公司网站
  • 做交易平台的网站需要哪些技术北京网站制做的公司
  • 设计素材免费下载网站国内哪个应用商店app最全
  • 济南手机网站建设公司哪家好汕头建设局网站
  • 网站制作软件培训个人网站上传有啥要求
  • 手机网站建设与制作互联网营销的优点
  • 网站底部固定代码企业 怎么建交互网站
  • 怎么建设游戏试玩平台网站东莞企业网站教程
  • wordpress 大站wordpress设置浏览数
  • 国内网站用django做的随州网站设计开发方案
  • 潍坊网站开发weifangwangluo网站开发什么比较有创意
  • 北辰做网站公司wordpress管理员修改密码
  • 重庆手机网站推广网站建设四川冠辰