gpt4 book ai didi

c - linux中如何设置线程的属性?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:47 26 4
gpt4 key购买 nike

现在我想在我的程序中创建三个进程,每个进程中有几个线程。
每个线程都是无限任务,可以周期性休眠和唤醒。此外,进程还有一些任务要做。
我的问题是:

1) 我是否需要将线程设置为分离的?如果我将线程设置为分离的,它们似乎不会运行!!但是,如果线程是可连接的,则进程必须等待线程退出并且它无法完成自己的工作!!我应该选择哪一个?

2) 时间表政策的范围是什么?我的意思是,如果我将调度策略设置为 FIFO,那么所有进程中的所有线程都按 FIFO 策略调度?或者只是设置了这个属性的线程被这个策略调度了?

3)线程优先级的范围是什么?线程优先级仅在单个进程中有用,而在另一个进程中,存在另一组线程优先级??????而且它们不会互相传染???

非常感谢您的帮助!谢谢!

最佳答案

DETACHED OR JOINED:这取决于您需要的需求类型。

如果您希望主可执行线程(正在产生新线程)需要继续其工作并且无需等待产生的线程返回值,您可以使用 DETACH。

如果需要主执行线程,只需要等待返回值,不需要自己执行任何其他任务。您可以使用 JOIN。

创建线程时,它使用默认的调度策略,除非在调用 pthread_create 之前被属性更改。同样在创建之后,您可以动态地更改调度策略。注意:调度策略影响具有相同优先级的线程。

优先级:您可以使用 pthread_setschedparam(也用于调度策略)更改优先级。然而,在 Linux 中线程也是一个轻量级进程。所以,所有的线程都是优先考虑整个进程级别,不在每个过程中。

关于c - linux中如何设置线程的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643206/

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