Linux 上的 pthreads 是如何被调度程序看到的

2023-12-09

我有一个关于 Linux 上 pthread 实现的问题。

假设一个进程有5个线程。 现在调度程序如何看到这些线程(或根本看不到)。 例如当调度程序被调用时,它是否只调度主进程, 然后主进程有责任在每个线程之间进行调度。

或者是另一种方式,调度程序调度每个线程,就好像它是一个单独的进程一样。


对于现代Linux(NPTL pthread实现),调度程序调度线程,线程被认为是“轻量级进程”。 pthread_create 是根据以下方式实现的clone系统调用。

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

Linux 上的 pthreads 是如何被调度程序看到的 的相关文章

  • 设备树不匹配:.probe 从未被调用

    我无法理解设备树的工作原理 或者具体来说为什么该驱动程序无法初始化 这是在 android 版本 3 10 的 rockchip 供应商内核中 驱动程序 看门狗 rk29 wdt c 为了可读性而减少 static const struct
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • RXJava 调度程序/线程如何为不同的操作员工作?

    谁能帮我解释下面的代码正在运行哪个调度程序 Completable complete subscribeOn http Schedulers io observeOn AndroidSchedulers mainThread delay 5
  • 我应该如何以非 root 身份读取 Linux 上的 Intel PCI 非核心性能计数器?

    我想要一个库 允许对 Linux 可执行文件的关键部分进行 自我分析 就像人们可以使用一个部分计时一样获取当日时间 http linux die net man 2 gettimeofday or RDTSC http www strchr
  • 这些工作队列标志意味着什么?

    在研究工作队列时 我遇到了内核中定义的工作队列标志和常量 我有以下我无法理解的疑问 这里的排水和救援到底是什么意思 WQ DRAINING 1 lt lt 6 internal workqueue is draining WQ RESCUE
  • 我的属性太活泼了,我该怎么办?

    在 Linux 设备驱动程序中 创建 sysfs 属性probe太活泼了 具体来说 它经历了与用户空间的竞争条件 http kroah com log blog 2013 06 26 how to create a sysfs file c
  • 公平调度器和容量调度器有什么区别?

    我是 Hadoop 世界的新手 想了解公平调度程序和容量调度程序之间的区别 另外我们什么时候应该使用每一个 请简单地回答一下 因为我在网上读了很多东西 但从中得到的不多 公平调度是一种为作业分配资源的方法 使得所有作业随着时间的推移平均获得
  • 内核模块未加载(但 insmod 返回 0)

    我必须向现有设备 mips arch 添加一些功能 我已经尝试了几个 SDK 目前我取得了一些进展 但是 insmod 返回 0 成功 并且 lsmod 显示它们 但是 printk 和 create proc entry 都不起作用 但我
  • 未处理的强制展开导致中止

    所以我对两者的理解pthread exit and pthread cancel是它们都会导致称为 强制展开 的类似异常的事情被抛出目标线程中的相关堆栈帧 可以捕获它以进行特定于线程的清理 但必须重新抛出 否则我们会得到隐式的abort 在
  • C 标准库函数与系统调用。哪个是“open()”?

    I know fopen 在C标准库中 所以我绝对可以调用fopen C 程序中的函数 我感到困惑的是为什么我可以打电话给open 功能也一样 open 应该是系统调用 所以它不是标准库中的C函数 因为我能够成功地调用open 函数 我调用
  • Objective C - 后台执行选择器并且分离新线程选择器?

    detachNewThreadSelector 和performSelectorInBackground 都用于在后台调用方法 2种方法有什么区别吗 或者它们的工作方式相同吗 它们本质上是相同的 但范式略有不同 他们在幕后做着完全相同的事情
  • C 中的互斥锁/锁:C11 `mtx_lock()` 与 `pthread_mutex_lock()`

    互斥体直到 C11 才被引入 C 标准 对吗 既然它们已经存在 那么人们应该使用哪一个或更喜欢哪一个 以及何时使用 为什么 有什么区别 C11 s mtx lock vs pthread mutex lock C11 s mtx lock
  • 将JAVA程序作为计划任务运行

    我试图在 Windows 7 机器上每天运行一次简单的 JAVA 程序 我的代码在 NetBeans 中运行良好 如果我进行清理并构建 它会表明 C Program Files Java jdk1 7 0 bin java jar C Us
  • Pthreads - 高内存使用率

    我正在用 C 编写一些东西 在 256Mb 系统上的 Linux 中创建大量 Pthread 我通常有 200Mb 的免费空间 当我使用少量线程运行该程序时 它可以工作 但是一旦我让它创建大约 100 个线程 它就会出现错误 因为系统内存不
  • 在 POSIX 中将整数值转换为 void* 并再次转换回来总是安全的吗?

    这个问题几乎与我发现的其他一些问题重复 但这特别涉及 POSIX 并且是我多次遇到的 pthreads 中一个非常常见的示例 我最关心的是当前的状况 即 C99 和 POSIX 1 2008 或更高版本 但任何有趣的历史信息当然也很有趣 问
  • 唤醒单个线程而不是 pthread 中的忙等待

    我不确定标题是否反映了我在这里提出的问题 但这是我在没有很长的标题的情况下能做的最好的事情 我正在尝试实施一个worker thread模型中pthreads 我想从中产生一组线程main函数以及此后的main线程将工作委托给工作人员 并等
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa

随机推荐