python如何查看线程id

19880阅读 0评论2016-08-24 mfc42d
分类:Python/Ruby

最近使用python多线程程序,发现会耗尽所有的cpu,有必要让python程序运行在一个cpu上.,但是发现threading.get_ident() 返回一个极大的整数,根本和线程号对不上.
只是使用先获取系统调用号

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <sys/syscall.h>


  3. int main(void)
  4. {
  5.     printf("%d\n", SYS_gettid);
  6.     return 0;
  7. }


得到 186

点击(此处)折叠或打开

  1. #!/usr/bin/env python

  2. import threading
  3. import os
  4. import ctypes
  5. def cycle_burner():
  6.     SYS_gettid = 186
  7.     libc = ctypes.cdll.LoadLibrary('libc.so.6')
  8.     tid = libc.syscall(SYS_gettid)
  9.     print tid
  10.     while True:
  11.             meh = 84908230489 % 323422

  12. for i in range(3):
  13.      thread = threading.Thread(target=cycle_burner)
  14.      print "Starting a thread"
  15.      thread.start()



运行一切ok
上一篇:vm.swappiness对于数据库的影响
下一篇:ubuntu下workbench ssh不能连接mysql的问题