问题标签 [thread-priority]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
48967 浏览

java - Java Executors:如何设置任务优先级?

是否可以为执行者执行的任务设置优先级?我在 JCIP 中找到了一些关于它可能的声明,但我找不到任何示例,也找不到任何相关的文档。

来自 JCIP:

执行策略指定任务执行的“内容、地点、时间和方式”,包括:

  • ...
  • 任务应该按什么顺序执行(FIFO、LIFO、优先顺序)?
  • ...

UPD:我意识到我问的并不完全是我想问的。我真正想要的是:

如何使用/模拟设置线程优先级(即是什么thread.setPriority())与执行程序框架?

0 投票
4 回答
5107 浏览

android - 如何在 Android 中设置 IntentService 的优先级

我想知道是否可以IntentService像使用Thread. 到目前为止,我还没有发现任何东西。

0 投票
2 回答
198 浏览

windows-7 - Win7 或 Win2008 中隐藏窗口的优先级

对于 Windows 7 和/或 Windows Server 2008,隐藏窗口和可见窗口之间的线程优先级或类别是否有任何特定差异?换句话说,操作系统是否会降低应用程序的优先级?

0 投票
1 回答
1949 浏览

linux - 进程优先级与线程优先级

在 Linux 中,进程是一组线程。每个线程都有自己的优先级!但是一个进程也有优先级吗?如果是这样,它与线程优先级有何不同?当创建一个新进程时,这些值是如何传播的?

0 投票
4 回答
34969 浏览

c - C linux pthread 线程优先级

我的程序有一个后台线程来填充和交换双缓冲区实现的后台缓冲区。主线程使用前端缓冲区发送数据。问题是当我运行程序时,主线程平均获得更多的处理时间。我想要相反的行为,因为填充后台缓冲区是一个比处理数据并将数据发送到客户端更耗时的过程。

如何在 Linux 上使用 C POSIX pthreads 实现这一点?

0 投票
5 回答
8758 浏览

java - Java 垃圾收集线程优先级

我在一次采访中被问到以下问题:“垃圾收集线程的默认优先级是什么?” 我知道我们不能强制 GC 或更改其优先级,尽管我从未听说过它的默认优先级。有人知道吗?

0 投票
6 回答
13295 浏览

.net - 为什么*不*更改 ThreadPool(或任务)线程的优先级?

在 Web 和 Stack Overflow 上有很多地方不鼓励更改ThreadPool线程或 TPL Task的优先级。尤其:

“您无法控制线程池线程的状态和优先级。”
“运行时管理线程池。你无法控制线程的调度,也无法更改线程的优先级。”

“你不应该改变 PoolThread 的文化或优先级或......。就像你不油漆或重新装饰一辆出租汽车一样。”

“有几种情况适合创建和管理自己的线程而不是使用线程池线程:(例如......)您需要一个线程具有特定的优先级。”

“ThreadPool 中的每个线程都以默认优先级运行,更改 ThreadPriority 的代码无效。”

但是,这样做很简单,并且调试器显示更改似乎确实存在(只要可以读回该值)。

那么问题来了,这个特定禁忌的具体原因是什么?

我的怀疑:这样做会扰乱池的微妙负载平衡假设。但这并不能解释为什么有些消息来源说你不能改变它。

0 投票
1 回答
522 浏览

pthreads - 如何增加 POSIX 线程优先级的范围?

我想知道如何将 SCHED_RR 的 POSIX 线程优先级范围增加到 1-99 以上。我调用了 sched_get_priority_min 和 sched_get_priority_max 来验证 SCHED_RR 的 1-99 范围,但我正在移植为另一个使用更多优先级的操作系统编写的代码。我希望每个线程具有相同的相对优先级,但不想强制线程在它们应该不同时共享相同的优先级。

0 投票
2 回答
434 浏览

c# - 需要在 C# 中优先考虑异步套接字读取

我的应用程序使用异步 HttpWebRequest 请求预取大量视频帧。因此,如果有 100 帧,预取器将异步请求所有 100 帧,一次全部,并在收到返回时进行处理。即,它一次进行 100 次异步调用。这可能会使网卡饱和,但没关系。我想最大化网络带宽。

然而,当这种预取发生时,用户可能想要查看其中一个帧。因此,假设他们想要查看第 56 帧。问题是,第 1 到 100 帧已经被请求,并且正在处理中,因此对第 56 帧的请求可能需要很长时间才能得到响应。

如果有某种方法可以在异步请求发出后重新确定它们的优先级,那将是一件好事。并将用户请求推送到队列的最前面。

如果我不能这样做,我想我将不得不分批请求帧,以便我可以在批次之间插入我的用户请求,并避免超时。

任何关于如何正确设计的想法都将不胜感激。

0 投票
1 回答
1723 浏览

winapi - SetPriorityClass(REALTIME_PRIORITY_CLASS) 实际上做了什么?

REALTIME_PRIORITY_CLASS(with THREAD_PRIORITY_TIME_CRITICAL)实际上是做什么的?

可以:

  • 防止中断触发
  • 防止发生上下文切换

在处理器上(除非线程休眠)?

如果它确实阻止了上述情况的发生:

  • 为什么当我在带有这个标志的处理器上运行程序时,我仍然得到不一致的计时结果?如果没有任何中断,程序不应该每次都花费相同的时间吗?

如果它不能阻止上述情况的发生:

  • 如果我使用不正确,为什么我的系统(鼠标、键盘等)会锁定?驱动程序不应该得到一些处理器时间吗?