python中GIL问题(多线程问题,调用的函数用C语言写)

来源:互联网 发布:怎么删除多重网络 编辑:程序博客网 时间:2024/05/22 15:19

python中GIL问题(多线程问题,调用的函数用C语言写)

  • 1.新建一个C语言的文件,比如:loop.c
void DeadLoop(){    while(1)    {        ;    }}
  • 2.把一个C语言文件编译成一个动态库的命令(linux平台下)

gcc  xxx.c -shared -o libyyy.so(注意:xxx.c为你第一步新建的文件,libyyy.so中yyy为任意的)如:gcc loop.c -shared -o libdeaploop.so
  • 3.新建一个py文件,如:main.py

from ctypes import *from threading import Thread#加载动态库lib = cdll.LoadLibrary("./libdeadloop.so")#创建一个子线程,让其执行c语言编写的函数,此函数是一个死循环t=Thread(target=lib.DeadLoop)t.start()#主线程,也调用c语言编写的那个死循环函数#lib.DeapLoop()while True:    pass
  • 4.执行python3 main.py,并用 htop查看cup的使用率

(htop命令安装:直接  sudo apt-get install htop)

木里

原创粉丝点击