linux线程被中断打断,不会计入调度次数

发布于:2025-08-18 ⋅ 阅读:(20) ⋅ 点赞:(0)

通过线程的status文件,可以查看线程的调度次数。status的最后两行,voluntary_ctxt_switches表示线程的资源调度次数,比如线程调用了sleep睡眠,或者调用io接口发生了阻塞,均会统计为主动调度次数;nonvoluntary_ctxt_switches表示非自愿调度次数,比如线程在运行过程中被强张了。

如果线程在运行过程中被中断打断了,那么不会统计到调度次数。因为中断不会参与调度,不会被schedule,不是一个被调度的对象。线程只是被中断打断了,并不是被一个可调度的对象打断了,此时不会增加调度次数。

# cat /proc/1/status
Name:   systemd
Umask:  0000
State:  S (sleeping)
Tgid:   1
Ngid:   0
Pid:    1
PPid:   0
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 256
Groups:
NStgid: 1
NSpid:  1
NSpgid: 1
NSsid:  1
VmPeak:    21496 kB
VmSize:    19948 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      9992 kB
VmRSS:      9992 kB
RssAnon:            2856 kB
RssFile:            7136 kB
RssShmem:              0 kB
VmData:     2400 kB
VmStk:       132 kB
VmExe:      1236 kB
VmLib:     13392 kB
VmPTE:        76 kB
VmSwap:        0 kB
HugetlbPages:          0 kB
CoreDumping:    0
THP_enabled:    1
Threads:        1
SigQ:   0/113668
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 7be3c0fe28014a03
SigIgn: 0000000000001000
SigCgt: 00000001800004ec
CapInh: 0000000000000000
CapPrm: 000001ffffffffff
CapEff: 000001ffffffffff
CapBnd: 000001ffffffffff
CapAmb: 0000000000000000
NoNewPrivs:     0
Seccomp:        0
Seccomp_filters:        0
Speculation_Store_Bypass:       thread vulnerable
Cpus_allowed:   3ff
Cpus_allowed_list:      0-9
Mems_allowed:   1
Mems_allowed_list:      0
voluntary_ctxt_switches:        31270
nonvoluntary_ctxt_switches:     2525


网站公告

今日签到

点亮在社区的每一天
去签到