0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Windows和Linux操作系统的流式处理API

星星科技指导员 来源:嵌入式计算设计 作者:Eduard Trunov 2022-06-30 10:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在 Windows 操作系统中,TerminateThread在成功终止的情况下返回TRUE。从这个逻辑出发,让我们尝试在 Linux 中组织类似的功能。

首先,我们将检查线程是否处于活动状态。为此,我们将发送一个零信号。如果进程中存在线程并且正在执行,则tkill将返回 0。之后,我们将使用PTHREAD_CANCEL_ASYNCHRONOUS参数调用 pthread_setcanceltype 函数,只有在此之后,我们才会尝试通过调用 pthread_cancel 函数来终止线程.有一种可能的情况是线程仍将执行一段时间,为此我们将使用定时等待函数pthread_timedjoin_np(示例中有五次尝试;每次需要 1000 毫秒)。线程终止后,我们会调用pthread_setcanceltype再次使用PTHREAD_CANCEL_DEFERRED参数。如果有任何错误,将始终返回 FALSE。

进程的任何线程都会调用 ExitProcess 函数。

如果其中一个线程调用退出函数(对于 Linux 操作系统),或者ExitProcess或TerminateProcess(对于 Windows 操作系统),那么整个进程将被终止。同样,如果一个线程接收到一个动作包含在进程终止中的信号,这个信号将终止整个进程。

让我们总结一下。正确设计的应用程序不应调用强制线程终止函数。推荐的方法是线程函数返回时。在 Linux 操作系统中线程终止的情况下,连接将释放进程拥有的链接和系统资源。必须适当考虑两次调用 join 函数是不正确的事实(最好会出现错误)。如果 Windows 操作系统的线程被强制终止,请务必注意所有非系统资源应以任何方式清理。在 Linux 中,有pthread_cleanup_push和pthread_cleanup_pop函数。

线程终止函数记录在表 5 中。

表 5. 线程终止函数。

结论

为了减轻中断的影响,操作系统提供了一个由并行运行的进程组成的模型。但是,该模型在交互、自身地址空间的可用性等方面存在弱点。

另一方面,应用程序在一个进程中拥有多个控制线程可能是有利的。由于这些线程属于同一个进程,它们使用自己堆栈上的共享地址空间。

线程可以使用信号量、消息等原语相互交互。这些原语对于使在临界区中不可能同时执行两个或多个线程是必要的。线程可以处于以下状态之一:可运行或执行阻塞。一个线程也可以使用交互原语与另一个线程交互。请记住,在使用交互原语时,应小心避免错误和死锁。

在本文中,我们分析了 Windows 和 Linux 操作系统的流式处理 API;提出了基于事件的线程创建和同步接口;讨论了使用共享资源的功能;以及详细的线程终止方式。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217946
  • WINDOWS
    +关注

    关注

    4

    文章

    3694

    浏览量

    93216
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128622
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EV10AS180A模数转换器支持哪些操作系统

    应用。EV10AS180A转换器本身并不直接依赖或支持特定的操作系统,其核心功能是完成模拟信号到数字信号的转换,属于硬件层面的数据处理设备。硬件独立性:EV10AS180A作为一款高性能ADC,其工作原理
    发表于 11-18 09:18

    单片机的操作系统

    。 ‌ ‌ RT-Thread ‌:国产开源系统,集成GUI、网络协议栈、文件系统等组件,兼容POSIX接口,适合物联网设备。 ‌ 嵌入式操作系统 ‌ μClinux ‌:针对无MMU处理
    发表于 11-14 06:18

    嵌入式实时操作系统的特点

    任务的系统。 实时嵌入式操作系统与传统的桌面操作系统相比,更注重对实时任务的响应和精确控制。它们在资源利用、可靠性、可预测性、任务调度和中断处理等方面提供了更加严格的要求和机制。 实时
    发表于 11-13 06:30

    Jtti Linux操作系统最常见的10大优势

    Linux操作系统的十大优势 Linux操作系统作为一种开源、自由的系统,已经广泛应用于个人计算机、服务器、嵌入式设备等多个领域。它的多样化
    的头像 发表于 11-06 15:32 127次阅读

    手持机PDA三大操作系统Android / 开源鸿蒙 / Windows对比

    本文全面解析手持机PDA主流操作系统(Android和开源鸿蒙和Windows)的技术特点、区别及适用场景,帮助企业根据自身业务需求选择合适的系统。包含多维度对比表格和实用选型建议。
    的头像 发表于 09-23 15:41 559次阅读
    手持机PDA三大<b class='flag-5'>操作系统</b>Android / 开源鸿蒙 / <b class='flag-5'>Windows</b>对比

    龙芯处理器支持WINDOWS吗?

    龙芯处理器目前不支持原生运行Windows操作系统,主要原因如下: 架构差异 龙芯架构:龙芯早期基于MIPS架构,后续转向自主研发的LoongArch指令集(与x86/ARM不兼容
    发表于 06-05 14:24

    聚徽厂家解码——工控机操作系统选择:WindowsLinux、QNX 如何匹配工业场景

    在工业自动化进程不断推进的当下,工控机作为核心设备,其操作系统的恰当选择对工业生产的稳定性、高效性和安全性起着决定性作用。常见的 WindowsLinux 和 QNX 操作系统,各自
    的头像 发表于 05-29 16:28 1233次阅读

    如何设置 Raspberry Pi 操作系统 Windows 模拟器:完全指南!

    为何要在Windows上模拟树莓派操作系统?在Windows上模拟树莓派操作系统是利用虚拟化技术进行开发、测试和学习,而无需物理树莓派硬件,这是一种强大的方式,并且允许您在Window
    的头像 发表于 05-20 16:23 758次阅读
    如何设置 Raspberry Pi <b class='flag-5'>操作系统</b> <b class='flag-5'>Windows</b> 模拟器:完全指南!

    鸿道Intewell操作系统Linux实时拓展方案

    鸿道Intewell操作系统是科东软件自主研发的新型工业实时操作系统,历经30多年研发积累,采用业界领先的微内核架构,具备高实时、高安全及强扩展的特性,是目前国内唯一通过汽车、工业控制、医疗仪器、轨道交通四项功能安全认证的操作系统
    的头像 发表于 02-27 10:08 616次阅读
    鸿道Intewell<b class='flag-5'>操作系统</b>的<b class='flag-5'>Linux</b>实时拓展方案

    鸿道Intewell操作系统:赋能高端装备制造,引领国产数控系统迈向新高度

    鸿道Intewell操作系统采用领先的微内核架构,结合自主研发的Hypervisor虚拟化技术,实现了高实时性、高安全性与强扩展性的完美统一。其独特的Windows/Linux实时扩展架构,支持
    的头像 发表于 02-19 15:03 747次阅读

    鸿道Intewell操作系统为半导体行业打造高可靠实时控制系统

    方案使用鸿道Intewell操作系统实时扩展架构,该架构利用多核处理器,实现Windows/Linux应用和实时应用的并行运行,且Windows
    的头像 发表于 02-08 16:13 785次阅读
    鸿道Intewell<b class='flag-5'>操作系统</b>为半导体行业打造高可靠实时控制<b class='flag-5'>系统</b>

    国产银河麒麟操作系统V10和星光麒麟V1.0操作系统如何选择?

    国产银河麒麟操作系统和星光麒麟操作系统都是由中国电子旗下科技企业麒麟软件有限公司(简称“麒麟软件”)开发的国产自主可控的操作系统。麒麟软件介绍:麒麟软件以安全可信操作系统技术为核心,面
    的头像 发表于 01-24 09:14 4211次阅读
    国产银河麒麟<b class='flag-5'>操作系统</b>V10和星光麒麟V1.0<b class='flag-5'>操作系统</b>如何选择?

    云服务器选择什么操作系统好?

    云服务器选择什么操作系统好?选择云服务器操作系统需考虑业务需求、兼容性、安全性、易用性及成本。Linux系统如CentOS、Ubuntu和Debian因稳定、免费且社区支持强大而受欢迎
    的头像 发表于 01-21 10:56 734次阅读

    鸿道Intewell操作系统Windows实时拓展方案

    鸿道Intewell操作系统Windows实时拓展方案,即鸿道Intewell-Win构型,是一款专为工业控制领域设计的国产操作系统,支持Windows实时扩展,具备以下特点和优势:
    的头像 发表于 12-24 17:40 832次阅读
    鸿道Intewell<b class='flag-5'>操作系统</b>的<b class='flag-5'>Windows</b>实时拓展方案

    deepin操作系统介绍

    希望从自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。  一、 deepin 操作系统 先说
    的头像 发表于 12-23 09:08 3220次阅读
    deepin<b class='flag-5'>操作系统</b>介绍