gpt4 book ai didi

c - 将所有处理器能力专用于一项任务

转载 作者:行者123 更新时间:2023-12-04 09:25:33 24 4
gpt4 key购买 nike

假设我们手头有一项处理器密集型任务,可以有效地并行处理。我们如何才能将所有几乎所有 可用的处理器能力专用于执行该任务?

任务可能是多种多样的,保存记录数字的迭代斐波那契数生成只是一个例子。

最佳答案

您提供的有关目标环境的详细信息可能太少。

通常,当使用 RTOS 时,您可以禁用中断,这样调度程序和中断服务例程都不会运行,或者您可以应用任务锁定,这样调度程序将不会运行,但 ISR 将继续运行。您可以通过将任务的优先级提高到最高优先级来实现与任务锁相同的效果。

如果您没有使用 RTOS(或没有操作系统),您通常无法控制调度,但如果您的线程运行时没有让步(即调用导致线程等待的函数),那么其他线程和进程不需要很多周期,你的线程将获得几乎所有的 CPU。例如,如果您没有运行其他处理器密集型任务,Windows 中的繁忙循环在大多数情况下会在任务监视器中显示为一个内核的 100% 使用率。如果您的处理器有多个内核,则您必须以某种方式并行化任务以使其使用所有内核。

I/O 调用通常会导致线程阻塞,因此您“保存”结果的要求可能会导致问题。解决方案是将结果缓存在内存中(直接或作为队列或写入缓存),并延迟输出直到所有计算完成。

关于c - 将所有处理器能力专用于一项任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2887002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com