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
    +关注

    关注

    87

    文章

    11522

    浏览量

    214384
  • WINDOWS
    +关注

    关注

    4

    文章

    3615

    浏览量

    91613
  • 操作系统
    +关注

    关注

    37

    文章

    7176

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯处理器支持WINDOWS吗?

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

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

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

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

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

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

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

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

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

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

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

    deepin操作系统介绍

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

    如何在windows上emulate不同操作系统

    一、虚拟化技术概述 虚拟化技术允许在单个物理机器上创建多个虚拟机,每个虚拟机都可以运行不同的操作系统。这使得我们可以在Windows系统上模拟其他操作系统,而无需购买额外的硬件。虚拟化
    的头像 发表于 12-05 15:50 ?922次阅读

    国产实时操作系统:和RT-Linux,Zephyr的实时性对比

    基于RT-Thread内核,并具备POSIX用户态运行环境的高性能实时操作系统。它类似LinuxWindows的架构,具备用户态和内核态(并相分离),用户态具备全地址空
    的头像 发表于 11-12 01:07 ?2694次阅读
    国产实时<b class='flag-5'>操作系统</b>:和RT-<b class='flag-5'>Linux</b>,Zephyr的实时性对比

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于?C/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片划分的非实时
    的头像 发表于 11-11 11:43 ?1222次阅读

    嵌入式 Linux 操作系统配置

    随着物联网(IoT)和智能设备的快速发展,嵌入式系统在各个领域扮演着越来越重要的角色。Linux因其开源、灵活和稳定的特性,成为嵌入式系统的首选操作系统。 1. 硬件选择 在配置嵌入式
    的头像 发表于 11-06 10:22 ?1255次阅读

    linux操作系统安装步骤 linux操作系统的特点及组成

    Linux操作系统安装步骤 Linux操作系统是一种开源的操作系统,它以其稳定性、安全性和灵活性而闻名。以下是安装
    的头像 发表于 10-21 11:24 ?1283次阅读

    Linux操作系统份额创历史新高,逼近4.5%里程碑

    在最新的全球操作系统市场份额报告中,市调机构StatCounter于8月27日发布了令人瞩目的数据:2024年7月,Linux系统实现了历史性的飞跃,其市场份额首次逼近4.5%的关口,达到了4.44%的新高。这一成就标志着
    的头像 发表于 08-27 17:05 ?2446次阅读

    Windows操作系统是什么?它有哪些特点?

    Windows操作系统是由美国微软公司(Microsoft Corporation)开发和推出的一种计算机操作系统。自1985年Windows 1.0版本发布以来,
    的头像 发表于 08-07 16:30 ?6611次阅读

    Windows操作系统中的常用命令

    Windows操作系统提供了许多实用的命令行工具,通过命令行界面(Command Prompt)或Windows PowerShell,用户可以执行各种任务,如文件管理、系统维护、网络
    的头像 发表于 08-07 15:40 ?1242次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>操作系统</b>中的常用命令