如何创建虚拟多线程进程并使用常用实用程序获取其tids?

如何创建虚拟多线程进程并使用常用实用程序获取其tids?

我可以创建一个永远挂起的虚拟进程并通过以下方式获取其 PID:

bash -c 'echo $$; read'

我想要一个多线程替代方案来替代这个单行代码,它创建 2 个以上线程,打印每个线程的线程 ID,然后每个线程都会阻塞。用法看起来像:

$ launch-multithread
2459
2460

这可以用常见的 Unix 实用程序实现吗?

出于好奇,我想这样做,因为我正在使用 cgroup,并且希望避免干扰任何正在做我关心的事情的进程。

答案1

这是实现目标的非常简单的方法。

#!/usr/bin/env bash

sh -c "sleep 3600" &
echo $!
sh -c "sleep 3600" &
echo $!

使用sleep 3600将使您的进程保持活动状态 1 小时 - 根据需要进行调整。

相关内容