最近使用python多线程程序,发现会耗尽所有的cpu,有必要让python程序运行在一个cpu上.,但是发现threading.get_ident() 返回一个极大的整数,根本和线程号对不上.
只是使用先获取系统调用号
-
#include <stdio.h>
-
#include <sys/syscall.h>
-
-
-
int main(void)
-
{
-
printf("%d\n", SYS_gettid);
-
return 0;
-
}
得到 186
-
#!/usr/bin/env python
-
-
import threading
-
import os
-
import ctypes
-
def cycle_burner():
-
SYS_gettid = 186
-
libc = ctypes.cdll.LoadLibrary('libc.so.6')
-
tid = libc.syscall(SYS_gettid)
-
print tid
-
while True:
-
meh = 84908230489 % 323422
-
-
for i in range(3):
-
thread = threading.Thread(target=cycle_burner)
-
print "Starting a thread"
-
thread.start()
运行一切ok
阅读(19743) | 评论(0) | 转发(0) |