如何“杀死”Pthread?

2024-05-12

我正在学习 Pthreads,并且想知道杀死这样一个对象的最佳方法是什么。在寻找类似的问题后,我无法找到“明确”的答案,但请随时向我指出任何相关问题。

我正在使用一个小型客户端服务器应用程序,其中服务器主线程正在侦听套接字上的客户端连接。每次客户端连接时,服务器都会创建一个新线程,在 while true 循环中执行“无限工作”。现在,当同一客户端在套接字上发送“停止”请求时,我想停止此循环。

知道客户端是通过每个套接字消息中提供的 ID 来识别的,您将如何实现这样的行为?使用共享变量(在主服务器线程和客户端服务器线程之间)作为 while 循环中的 tes 条件。使用 PThread 函数?


没有办法强行杀死单个 POSIX 线程;这是有意设计的。相反,如果您的线程需要被其他线程停止,您应该设计在其中运行的代码以考虑到这一点。执行此操作的惯用方法是使用退出标志变量(由互斥体保护)和条件变量。

还有pthread_cancel,可用于请求线程退出。正确使用它需要设置清理处理程序pthread_cleanup_push和/或暂时禁用取消pthread_setcancelstate.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何“杀死”Pthread? 的相关文章

随机推荐

  • Android React-Native 中 MainActivity 不存在错误

    所以我收到 MainActivity 不存在错误 这可能是因为我将包和应用程序重命名为bomber to Bomber并将 appId 更改为com bomber to cool bomber android 我检查了 AndroidMan
  • jQuery UI 自动完成:如何发送发布数据?

    From jQuery UI 网站 http jqueryui com demos autocomplete remote 查看源码 birds autocomplete source search php minLength 2 sele
  • 如何创建共享网络目录或文件的超链接?

    我检查了以下两个相关讨论 1 如何创建指向本地可执行文件的超链接 https stackoverflow com questions 2815982 how do i make a hyperlink to a local executab
  • python:numpy 运行脚本两次

    当我将 numpy 导入到 python 脚本中时 该脚本会执行两次 有人可以告诉我如何阻止这种情况 因为我的脚本中的所有内容都需要两倍的时间 这是一个例子 usr bin python2 from numpy import print t
  • 如何使用 javascript 将我的域名字母大写?

    假设我的域名是www hello com 如何使用 jQuery JavaScript 使浏览器的 URL 栏看起来像 www HELLO com 您无法更改浏览器地址栏中显示的内容 这是一项基本的安全功能 您可以使您的域名全部大写 并将页
  • 如何自动下载 Google 签名的通用 APK 以在 Google Play 之外分发?

    我有使用 Play 应用签名的应用 我想将应用程序上传到华为应用程序库 Google 建议从捆绑资源管理器下载已签名的通用 APK 然后上传到 Google Play 之外的商店 如果您还在 Google Play 之外分发您的应用或计划
  • 使用 Angular 4 将新行添加到 mat-table 中

    如何从输入字段手动将新行添加到 Angular Material 表中 请看这张图片 如果我添加状态名称和状态代码 它应该出现在下表中 请帮助我如何使用 Angular 4 来实现它 我整理了一个简单的示例 应该可以很好地提示您从哪里开始
  • es6-module 默认导出导入为未定义

    我不确定我在这里缺少什么 我正在使用 jspm 和 es6 module loader 开发一个项目 我有一个模块定义如下 import hooks from hooks import api from api import tools f
  • 在 Elasticsearch 中删除文件后回收磁盘空间

    当我从 Elasticsearch 中删除文档时 为什么我的 总大小 保持不变 尽管由于没有以前存储的数据而明显小得多 我读过有关索引优化的内容 但我不确定这是什么或如何做到这一点 Thanks 我确信 SO 和 Google 上都有大量与
  • 命令式代码与声明式代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图理解命令式范例和声明式范例之间的区别 因为我必须对 Visual Basic 进行分类 NET 在不同的范式中 除了面向对象之外
  • 如何使用格式保存 Tkinter 文本小部件的内容

    我在 python 中使用 Tkinter 在文本窗口中显示输出 我发现使用 get 功能我可以从此窗口检索文本内容 但我有用不同背景颜色标记的文本部分 是否可以将内容与这些颜色一起复制到文件 例如 html 或 doc 中 没有对你想要的
  • 使用 scipy、python、numpy 进行非线性 e^(-x) 回归

    下面的代码为我提供了一条最佳拟合线的平坦线 而不是沿着 e x 模型的一条适合数据的漂亮曲线 谁能告诉我如何修复下面的代码以使其适合我的数据 import numpy as np import matplotlib pyplot as pl
  • 使用 Python 打开新窗口时,selenium window_handles 不正确

    我想使用 selenium 和 Python 在一个浏览器中打开多个选项卡 并通过多个选项卡同时抓取实时投注赔率 网站主页生成游戏列表 但是 除非您找到游戏元素并使用 click 该网站是 ajax 密集型 否则无法获取游戏链接 这会在同一
  • Bootstrap Glyphicons 在 IE10 或 FF 中不显示

    我无法在 IE10 或 FF 中显示引导字形图标 我正在使用最新的 bootstrap 3 代码 并以标准方式包含字形 span class glyphicon glyphicon edit span 它们在 Chrome 中工作正常 但在
  • Flash 照片上传 - 从网络摄像头拍摄照片 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Node.js 7 如何将sequelize事务与async/await一起使用?

    Node js 7 及更高版本已经支持 async await 语法 我应该如何在后续事务中使用 async await let transaction try get transaction transaction await seque
  • JSF EL:instanceof 已保留但尚未实现?

    我在 JSF EL 中找到了 instanceof 运算符 但在使用时它会抛出异常 明明是保留了却没有执行 如果还没有比我当前使用的 JSF 1 2 更新的版本 那么它 可能 什么时候可用 关键词instanceof确实在 EL 中保留 参
  • 为什么反编译swf文件时jpexs工具不起作用?

    有人知道如何反编译 SWF 文件吗 我尝试过 JPEXS 和 Sothink SWF Decompiler 但不起作用 我把这个 swf在这个link https drive google com file d 1ehHprPOqR0QnR
  • 在 Python 中倾斜数组

    我有一个 2D 数组 我将使用它保存为灰度图像scipy misc toimage 在此之前 我想将图像倾斜给定角度 像这样进行插值scipy ndimage interpolation rotate 上图只是为了说明倾斜过程 我知道我必须
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次