【发布时间】:2014-12-19 07:11:50
【问题描述】:
先看代码:
#!/usr/bin/env ruby
# encoding: UTF-8
thread_num = Thread.list.size
thread_num_via_proc = thread_num_later = nil
IO.readlines("/proc/#{Process.pid}/status").each do |line|
if line.start_with?("Threads:")
thread_num_via_proc = line.split[1].to_i
thread_num_later = Thread.list.size
end
end
p thread_num # 1
p thread_num_via_proc # 2
p thread_num_later # 1
从 /proc/[pid]/status 获得的线程号始终等于 Thread.list.size + 1。
然后我提到man proc,它说(这让我很困惑):
- 线程:包含此线程的进程中的线程数。
我应该误解了一些关于“Thread.list”或“/proc/[pid]/status”的东西,有人会指出吗?
【问题讨论】:
标签: ruby linux multithreading proc