问题标签 [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.
java - 测试线程优先级。为什么在某些情况下低优先级线程更快?
我正在尝试测试 2 个线程,一个具有高优先级,另一个具有低优先级。
根据我的结果,有时低优先级线程更快,这怎么可能?我已经通过在每个线程内增加一个点击变量来测试不同的优先级线程。我也增加和减少了睡眠时间,但没有。
由于我没有在后台运行繁重的程序进行测试,因此我决定在运行高清电影的情况下进行测试,但仍然没有真正的变化,线程始终保持相同的速度。
我的电脑是英特尔 i5。我正在运行 Windows 7 64 位,16GB RAM
这是代码:
android - Android Thread.MIN_PRIORITY
我的 android 应用程序中有一些逻辑可以将线程池中所有线程的优先级设置为 Thread.MIN_PRIORITY(根据http://developer.android.com/reference/java/lang/Thread. html ).
但是当我做了一个
它给了我这个:
其中 39 应该是线程的优先级。
我很困惑 Thread.MIN_PRIORITY 是如何被翻译成 39 的?
java - 如何在 java swing 中停止和启动渲染器
由于列索引,渲染器在列排序时给了我错误。渲染器根据列值绘制列,所以我应该在列排序器工作期间让渲染器等待。我能怎么做?
linux - Linux调度程序抢占低优先级线程太久
我正在开发一个多进程应用程序,它在运行 linux 3.0.35 的 iMX6 四核 CPU 上运行。我正在运行的进程/线程之一需要比其他进程/线程更高的优先级。
所以我对那个线程使用 SCHED_FIFO,对其他线程使用 SCHED_OTHER。
当机器负载很重时,我注意到以下场景(使用 DS5 Streamline 分析工具):
- 低优先级线程被 CPU x 上的高优先级线程抢占。
- 当高优先级线程在 CPU x 中时,其他低优先级线程在其他 CPU 上获得 CPU 时间。但不是原始线程 - 它在很长一段时间内(甚至几秒钟)都没有获得 CPU 时间
- 当使用 CPU x 完成高优先级线程时,即使机器负载很重(10+ 线程需要 CPU),CPU 也会长时间保持空闲(最多 2 秒)(CPU 被标记为空闲在分析工具中)
我正在寻找方法来理解这意味着什么 - linux调度程序是否应该在被抢占的线程被踢出 CPU x 后给予 CPU 时间?- 为什么有很多线程需要CPU时间,CPU却闲置了这么久?
我在看什么?
如果有帮助,我可以完全访问内核代码和更多分析工具。
谢谢, 奥弗
java - 为什么在此代码中具有较低优先级的线程比具有较高优先级的线程获得更长的 CPU 时间
我正在阅读来自Java The complete Reference - Herbert Schildt (TATA McGRAW HILL)
. 在这个示例表单中,具有较低优先级的线程应该clicks
比具有较高优先级的线程给出较低的值。但我得到了什么
根据书它是这样的(差异)
代码
我上线了Intel® Core™ i3-2310M CPU @ 2.10GHz × 4 with Ubuntu 13.04
和Thread.sleep(50000);
区别不是很大吗
我也尝试优先级 HI = 10 和 LOw = 1,但结果几乎相同。
更新:运行 100 个线程 50 后priority = 1
,50 with priority = 10
结果为
这里time = clicks values
拥有 1000 个线程Take 4-5 min. to complete, all 4 cores at 100%
每个线程的不可预测的输出。
multithreading - 互斥体与信号量中的优先级反转
为什么(以及如何)互斥锁可以处理优先级反转而不能处理信号量?
我在很多地方读到互斥锁和信号量之间的区别(其中一个)是优先级反转,有人可以解释一下吗?
linux-kernel - 如何在普通 linux 内核中为中断处理程序赋予优先级?
我正在研究从网络捕获的数据包的精确时间戳。每次接收数据包时都会产生一个中断。因此,以太网驱动程序注册的中断处理程序将捕获的数据包排队。我有 2 个问题
- 谁对每个数据包执行时间戳,中断处理程序或处理来自队列的数据包的内核。
- 根据哪个任务(中断处理程序或内核,都在内核空间中)执行时间戳,我如何在普通内核中增加它的优先级(即不使用 RT 内核)
linux-device-driver - 优先考虑e1000e网络驱动程序中的(软件)时间戳线程
我是 linux 编程的新手。我有一个带有 e1000e 驱动程序的英特尔网卡。我正在研究从网络捕获的数据包的精确时间戳。每次接收数据包时都会产生一个中断。因此,驱动程序注册的中断处理程序将捕获的数据包排队并为其加上时间戳。我的问题是,如果要使用 RT Linux,如何提高时间戳线程的优先级。这可能吗?
c++ - 在 C++11 中设置 std::thread 优先级的便携式方法
后 C++11 世界中设置 std::thread 实例优先级的正确方法是什么
是否有一种至少在 Windows 和 POSIX (Linux) 环境中有效的可移植方式?
还是获取句柄并使用可用于特定操作系统的任何本机调用的问题?
c# - 无需在 VB.NET / C# 上挂起我的工作流程即可启动进程
我正在尝试构建一个“加载器” - 意思是一个程序,当我运行它时会启动一些预定义的程序。问题是我不希望启动的程序中断我的工作流程,并且每个程序都有 0-2 秒的“挂起”。
我认为我可能能够以"Idle" 或 "BelowNormal" 优先级启动该过程。但我只能在程序加载后设置该优先级 - 这为时已晚。
任何想法?
请注意,一切正常,但问题是“冻结”持续时间很短- 当加载的程序过多时,这变得很重要。
谢谢。