通过pidin观察线程信息

通过pidin观察线程信息

pidin在qnx里是一个非常有用的命令,该命令提供了多个选项来获取关于进程的详细信息,包括进程ID(PID)、进程状态、CPU使用情况、内存使用情况、线程信息等。

pidin通过threads参数可以观察进程ID,线程ID,线程名字,线程状态等。

Show the process ID, thread ID (in QNX Neutrino 7.0 or later), short process name, thread name, thread state, and what the thread is blocked on. If a thread doesn’t have a name, pidin displays the thread ID (tid) again.

线程信息总览

把以下代码编译成可执行文件test。

#include <thread>int main(int argc, char* argv[]) {std::thread t = std::thread([]{while (true) {std::this_thread::sleep_for(std::chrono::seconds(1));}});t.join();
}

把test运行起来后,执行pidin -p test threads

# pidin -p test threads pid tid name               thread name          STATE       Blocked                     1232925   1 ./test             1                    JOIN        2                           1232925   2 ./test             2                    NANOSLEEP           

从中看可以看到进程ID是1232925,进程名字是test,一共两个线程,名字分别为1,2。其中线程2处于sleep状态,线程1处于被线程2阻塞的join状态。

给线程起名字

我们可以通过pthread_setname_np给线程设置名字,以方便区分不同的线程。

#include <thread>int main(int argc, char* argv[]) {pthread_setname_np(pthread_self(), "main");std::thread t = std::thread([]{while (true) {std::this_thread::sleep_for(std::chrono::seconds(1));}});pthread_setname_np(t.native_handle(), "test");t.join();
}

重新编译并运行,在另一个终端执行pidin -p test threads

# pidin -p test threads pid tid name               thread name          STATE       Blocked                     1286173   1 ./test             main                 JOIN        2                           1286173   2 ./test             test                 NANOSLEEP         

可以看到线程名字已经变成了我们设置的名字。

设置线程优先级

我们可以通过pthread_setschedprio设置线程优先级。

#include <thread>int main(int argc, char* argv[]) {pthread_setname_np(pthread_self(), "main");pthread_setschedprio(pthread_self(), 10);std::thread t = std::thread([]{while (true) {std::this_thread::sleep_for(std::chrono::seconds(1));}});pthread_setname_np(t.native_handle(), "test");pthread_setschedprio(t.native_handle(), 50);t.join();
}

重新编译并运行,在另一个终端执行pidin -p test -F "%a %b %N %h %J %B %p"

# pidin -p test  -F "%a %b %N %h %J %B %p"pid tid name               thread name          STATE       Blocked                      prio1351699   1 ./test             main                 JOIN        2                             10r1351699   2 ./test             test                 NANOSLEEP                                 50r

可以看到prio列显示的是我们设置的优先级。

参考文档

pidin的功能远不止此,更详细的信息请参考qnx官方文档。

pidin

Processes and Threads

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在并发场景如何正确的使用锁机制呢?

Java提供了多种锁机制来保证线程安全&#xff0c;包括synchronized关键字、Lock接口、ReadWriteLock接口等等。在日常并发场景中&#xff0c;正确使用锁机制是非常重要的&#xff0c;因为不恰当的锁使用会导致死锁、饥饿等问题&#xff0c;影响程序的性能和可靠性。 首先&…

c++ 开发环境 LNK1104: 无法打开文件“carve.lib” 已解决

别人分享&#xff0c; 和自己最近遇到问题一摸一样。以为没什么用的静态资源&#xff0c;结果 无法编译。 昨天安装配置了&#xff0c;结果今天早上打开电脑&#xff0c;所以dll的工程全部报错&#xff1a; 1>------ 已启动全部重新生成: 项目: Dll_test, 配置: Debug x64…

[Python]`threading.local`创建线程本地数据

在Python中&#xff0c;threading.local是一个用于创建线程本地数据的工具。它允许每个线程拥有自己独立的变量副本&#xff0c;这样可以在多线程程序中避免共享变量带来的问题。 通过使用threading.local&#xff0c;你可以为每个线程创建一个独立的变量空间&#xff0c;这样…

2024.02.09 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 中国电信江苏分公司2024年春季校园招聘 校招 | 中国电信江苏分公司2024年春季校园招聘 2、校招 | 国机集团2024届总部管培生春季招聘全面启动&#xff01; 校招 | 国机集团202…

pycharm中连接远程服务器

文章目录 概要文件进行映射将本地的project和远程的project进行映射&#xff0c;一定要使用sftp本地文件和远程的位置配置不想将远程的文件同步时候&#xff0c;可以进行下面设置 配置远程服务器的python解释器需要setting-->python interpreter-->add---> on ssh选择…

《Vue3 基础知识》事件总线 bus(与Vue2 有差异,使用 mitt 库)

前言 Vue2 与 Vue3 事件总线区别 Vue2 使用 $on&#xff0c;$off 和 $once 实例方法&#xff0c;创建一个事件总线&#xff0c;可在整个应用中做全局事件监听&#xff1b;Vue3 移除 $on&#xff0c;$off 和 $once 实例方法 &#xff0c;但提供了解决方案&#xff0c;使用库 m…

crossover玩不了qq游戏大厅怎么办 仍有五亿人坚持用QQ crossover玩游戏 Mac电脑玩QQ游戏

从1999年2月&#xff0c;QQ首个版本QICQ&#xff08;OPEN-ICQ&#xff09;上线。到2024年&#xff0c;靠着5亿月活用户&#xff0c;守住社交领域TOP2位置。你还记得QQ经典的铃声吗&#xff1f; 根据月狐数据2023年12月的统计&#xff0c;QQ月活跃账户数比微博和知乎加在一起还要…

分享10个ai人工智能ppt生成软件,一键轻松搞定PPT制作!

ai 人工智能发展至今&#xff0c;已经诞生了各式各样的 AI 软件&#xff0c;最常见的如 AI 写作软件、AI 绘画软件、AI 人工智能 ppt 生成器、AI 人工智能抠图软件等等。对每天要面对各类文档、演示文稿&#xff08;PPT&#xff09;的职场人来说&#xff0c;最被需要的 AI 软件…

颜色检测python项目

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程。很简单不是吗&#xff1f;嗯&#xff0c;对于人类来说&#xff0c;这是一项极…

教你怎么写苹果群控系统!

在数字化时代&#xff0c;随着智能手机的普及和iOS系统的广泛应用&#xff0c;苹果设备的管理和控制变得日益重要&#xff0c;为了满足这一需求&#xff0c;苹果群控系统应运而生。 一、系统概述 苹果群控系统是一种能够对多台苹果设备进行集中管理和控制的软件系统。通过该系…

2024年会声会影 迎接来了七大新功能

我喜欢Corel VideoStudio 会声会影2024旗舰版&#xff0c;因为它使用起来很有趣。它很容易使用&#xff0c;但仍然给你很多功能和力量。VideoStudio让我与世界分享我的想法&#xff01;“这个产品的功能非常多&#xff0c;我几乎没有触及它的表面&#xff0c;我可以做大量的编辑…

【Linux】权限管理(文件的访问者、类型和访问权限,chmod、chown、chgrp、umask,粘滞位)

目录 00.前言 01.文件访问者的分类 02.文件类型和访问权限 文件类型&#xff1a; 文件基本权限&#xff1a; 03.文件权限值的表示方法 04.访问权限的设置 &#xff08;1&#xff09;chmod &#xff08;2&#xff09;chown &#xff08;3&#xff09;chgrp &#xff0…

Linux:kubernetes(k8s)Deployment的操作(12)

创建deployment 命令 kubectl create deploy nginx-deploy --imagenginx:1.7.9 再去使用以下命令分别查询 ubectl get deploy kubectl get replicaset kubectl get pod 他是一个层层嵌套的一个关系 首先是创建了一个 deploy 里面包含着replicaset replicaset里面含有…

mysql中 COALESCE和CASE WHEN的使用以及创建或替换视图

create or replace view 自理能力评估视图 as SELECT ehr_zlnlpg.ID AS ID, ehr_zlnlpg.GRID AS GRID, ehr_zlnlpg.TJID AS TJID, ehr_grjbxx.Name AS 姓名, ehr_grjbxx.Sex AS 性别, ehr_grjbxx.Cardnum AS 身份证号, ehr_zlnlpg.SCORESUM AS 总…

代码随想录 贪心算法-中等题目-序列问题

376.摆动序列 376. 摆动序列 中等 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7…

ELEVENLABS AI在线AI语音合成工具,28种语言

一、Elevenlabs简介 ElevenLabs 可以使用合成语音、克隆语音或全新的「人工」语音将文本转化为语音&#xff0c;并且这些语音可以模仿不同性别、年龄和种族的声音。 ElevenLabs基于目前强大的生成式语音模型&#xff0c;提供文本生成语音、语音合成、语音克隆和语音识别分类功…

【好玩的游戏项目】在Linux系统下部署star-battle太空飞船射击小游戏

【好玩的开源项目】在Linux系统下部署 star-battle太空飞船射击小游戏 一、star-battle小游戏介绍1.1 star-battle小游戏简介1.2 star-battle小游戏玩法1.3 开源地址 二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍2.3 Apache HTTP Server简介 三、安装httpd软件3.1 检查yu…

面试官:说说你对事件循环的理解

一、事件循环是什么 首先&#xff0c;JavaScript是一门单线程的语言&#xff0c;意味着同一时间内只能做一件事&#xff0c;但是这并不意味着单线程就是阻塞&#xff0c;而实现单线程非阻塞的方法就是事件循环 在JavaScript中&#xff0c;所有的任务都可以分为 同步任务&#…

Apache拦截不安全漏洞

禁用PUT, DELETE等HTTP方法或禁用WebDAV 通过Apache的配置来禁用特定的HTTP方法&#xff0c;或者禁用WebDAV模块&#xff08;如果已启用&#xff09;&#xff0c;以防止对不支持的HTTP方法&#xff08;如PUT, DELETE等&#xff09;的访问。 禁用特定HTTP方法 使用mod_rewrit…

Linux收集内存快照来使用crash分析的方法

1. 使用gcore来生成core文件 除了个别情况下进程本身存在问题&#xff0c;自己就会crash&#xff0c;然后生成core之外&#xff0c;还可以使用gcore主动生成的进程文件。 对指定的进程使用gcore工具收集core文件的方式: 例如aaa进程的pid是2124&#xff1a; gcore -o /var/aaa…