python在linux下绑定cpu核,在Linux中用信号量阻塞cpu可能吗? (Python)

我知道你可以通过信号量来限制有限资源的使用,但是如何使它适用于CPU(或内核,如果这是明智的做法)。在Linux中用信号量阻塞cpu可能吗? (Python)

我在单个处理器上同时运行多个线程。但是在其中一个线程中,我想运行一段代码来发送一个信号,并且需要时间来让信号恢复。信号看起来非常失真,而过去这些信号一直很好。我肯定硬件工作正常,所以我相信添加这些额外的线程已经使响应脉冲的时间不准确。这是一个非常脆弱的CPU。我想尝试阻止CPU做任何事情,但检索和计时返回脉冲;我相信这应该是可能的。

这里有我想要实现的简要介绍:

-multiple threads are running

-on the thread with the pulse signaling a pulse has been sent

--> stop cpu from processing other threads

--> return pulse has been received

--> cpu is now free to continue it's work

我将插入睡眠()脉冲之间的方法,使得CPU不被锁定了其他线程。

我知道信号量如何工作,问题是,我如何使它在CPU上工作?

+1

我相信,如果这是CPython并且这些是Python线程,那么一次只能运行一个线程。这是因为Python的Global Interpretor Lock(GIL)。您调用的C代码不受GIL支配。进程是另一回事。 –

+0

是的,我正在使用CPython。我应该更清楚地澄清......我只有一个处理器,所以恐怕多处理是不可能的。我现在正在考虑使用作业调度程序来模拟线程优先级。这就是维基百科关于什么样的作业调度功能包括:'优先级和/或队列来控制无关作业的执行顺序'。这看起来正是我正在寻找的。所以我会在运行我的代码块之前提高线程的优先级,然后再将优先级恢复为正常。这是推理的好方法吗? –

+0

我对线程的了解很老,只限于Microsoft NT。微软希望人们在20世纪90年代后期开始使用他们的工具和技术开始使用线程编程,在多核板出现之前。而且,使用线程在UI中提供了一些有用的效果。然而,有一些不同之处,我认为多线程和进程仍然需要调度并分别在一个处理器上轮流进行。而且,你仍然需要考虑GIL。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值