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

    文章

    11219

    浏览量

    208873
  • WINDOWS
    +关注

    关注

    3

    文章

    3524

    浏览量

    88398
  • 操作系统
    +关注

    关注

    37

    文章

    6727

    浏览量

    123182
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    Windows操作系统中的常用命令

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

    CYAT81658是否支持Windows操作系统

    我们的一位客户要求将触摸集成电路用于他们自己的产品。 他们使用的是 Windows 10 操作系统。 我想知道我们的产品触摸 IC(CYAT81658)是否支持 Windows 操作系统
    发表于 07-05 07:36

    工业实时操作系统对比:鸿道Intewell跟rt-linux有啥区别

    Intewell和RT-Linux是两种不同的实时操作系统(RTOS),它们具有各自独特的特点和优势。以下是Intewell操作系统的一些关键特性,以及与RT-Linux的比较:
    的头像 发表于 07-03 10:00 457次阅读
    工业实时<b class='flag-5'>操作系统</b>对比:鸿道Intewell跟rt-<b class='flag-5'>linux</b>有啥区别

    研华工控机用什么系统WindowsLinux操作系统的较量

    工控机用什么系统WindowsLinux操作系统的较量。工控机(工业控制计算机)作为工业自动化和监控系统的核心组件,其稳定性、可靠性和性
    的头像 发表于 06-14 14:38 622次阅读
    研华工控机用什么<b class='flag-5'>系统</b>?<b class='flag-5'>Windows</b>与<b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>的较量

    服务器操作系统有几种?

    Linux、Unix等等,而人们常常应用的大部 分全是WindowsLinux系统软件。今日,小编就简单的给大伙儿介绍一下这两种常见的网络服务器电脑
    发表于 03-29 16:59

    鸿道(Intewell)操作系统为运动控制系统提供国产工业软件替代方案

    Intewell操作系统运动控制解决方案,采用Windows或者Linux实时扩展架构,满足在Windows系统或者
    的头像 发表于 03-13 16:12 554次阅读
    鸿道(Intewell)<b class='flag-5'>操作系统</b>为运动控制<b class='flag-5'>系统</b>提供国产工业软件替代方案

    linux服务器和windows服务器

    Linux服务器表现出更好的性能和稳定性,因此广泛应用于科学计算、大数据处理和网络服务器等领域。 另一方面,Windows服务器是由微软开发和维护的服务器操作系统,它提供了友好的用户
    发表于 02-22 15:46

    Linux操作系统上的射频测试模式应用指南

    电子发烧友网站提供《Linux操作系统上的射频测试模式应用指南.pdf》资料免费下载
    发表于 02-19 09:39 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>上的射频测试模式应用指南

    linuxwindows的区别 linux系统一般用来干嘛

    LinuxWindows是两种不同的操作系统,有着不同的设计理念和用途。本文将对LinuxWindows的区别进行详细分析,并介绍
    的头像 发表于 02-05 14:06 871次阅读

    Linux操作系统中如何按下PCIe的复位键

    Linux操作系统中,看如何按下PCIe的复位键
    的头像 发表于 01-20 09:31 1447次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>中如何按下PCIe的复位键

    LabVIEW在不同操作系统上使VI、可执行文件或安装程序

    LabVIEW在不同操作系统上使VI、可执行文件或安装程序 LabVIEW可以在多个操作系统上运行,主要支持以下几种操作系统Windows: LabVIEW在各个版本的
    发表于 12-02 21:47

    安装Linuxwindows在哪启动

    操作系统引导加载程序,可以管理多个操作系统的启动。它允许用户在系统启动时选择要运行的操作系统。本文将详细介绍 Linux 安装后
    的头像 发表于 11-28 15:02 1120次阅读