问题标签 [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 投票
3 回答
10989 浏览

c - 无法设置 Pthread 优先级

我无法使用pthread_attr_setschedparam(). 我试图解决这个问题,但无法做到。我还查阅了我的教科书,它也使用了相同的功能。我从书中复制了这段代码。你能告诉我如何设置线程优先级吗?

这是代码:

0 投票
1 回答
299 浏览

c# - 我可以并行化小于 10 毫秒的微小任务吗?(例如矩阵求逆)

我有一个关于 Windows 和 Linux 上的线程(或纤程)的一般性问题,使用任何编程语言:

是否有可能让“第二个线程待命”并让它迅速投入行动并在几毫秒内帮助完成一项小任务,而不会被抢先?我应该补充一点,我希望没有互斥锁和自旋锁的清晰代码。

为了证明传统的线程池不适用于小型任务,请考虑 C# 中的矩阵求逆问题。我正在使用 Ivan Kuckir 的矩阵类。我复制他的 Invert 函数并将其称为 InvertParallel,如下所示:

然后我调用 Invert 和 Invert_Parallel 函数并测量它所花费的时间:

相当明显的结果表明,对于小型任务(矩阵大小 50),从线程池启动任务比运行单线程慢:

(道歉 - 我必须从下面的注释中删除所有链接,因为我是新海报)

PS 可能相关的 S/O 文章:《如何同时启动两个线程》、《Linux - 线程和进程调度优先级》

PS 是的,我知道有一个更聪明的算法来计算逆,它的比例为 O(N^2.376)。

PPS 我不熟悉用户模式调度(Windows 上的 UMS)用户模式调度(Windows 上的“UMS”),有帮助吗?

0 投票
1 回答
7174 浏览

java - Java是抢占式的吗?

我已经看到了很多关于这个问题的答案,但我仍然不确定。

其中之一是“Java 是抢占式的”。(JVM 使用抢占式、基于优先级的调度算法(通常是循环算法)进行调度。

第二个是如果 2 个具有相同优先级的线程运行 Java 将不会抢占并且一个线程可能会饿死。

所以现在我写了一个程序来检查它,我创建了 10 个具有最低优先级的线程,然后创建了 10 个具有最高优先级的线程,结果是我在所有线程之间跳转 - 这意味着即使 2 个线程具有相同的 Java 也是抢占式的优先事项

0 投票
3 回答
640 浏览

java - 线程优先级会影响同步块访问吗?

我有一个 FileScanner 线程,它在列表中添加新文件和多个 FileParser 线程,它们获取新文件并每个解析自己的文件。为了同步,我将添加到列表中并从同步资源块中的列表中读取。问题是有时 FileScanner 线程似乎饿死并且没有进入同步块等待其他 FileParser 线程释放资源(列表)。我的问题是,如果我将最大优先级设置为 FileScanner,将最小优先级设置为其他 FileParser 线程,它会解决问题吗?换句话说,线程优先级是否会影响 JVM 在线程中进行选择以授予对同步块的访问权限?谢谢。

更新:

这在我的 FileScanner 线程中调用:

这在我的 FileParser 线程中调用:

0 投票
5 回答
484 浏览

java - CPU负载中的Java多线程

我对运行多个 Java 线程的应用程序有一点问题。该应用程序运行许多工作线程,这些线程不断地查看输入队列,如果队列中有消息,它们会将它们拉出并处理它们。

在这些工作线程中,有另一个验证线程计划在固定周期执行检查以查看主机(运行应用程序的主机)是否仍处于“良好状态”以运行应用程序。该线程更新一个AtomicBoolean值,该值在工作线程开始查看主机是否正常之前由工作线程验证。

我的问题是,在 CPU 负载较高的情况下,负责验证的线程将花费更长的时间,因为它必须与所有其他线程竞争。如果在AtomicBoolean一段时间后没有更新,它会自动设置为 false,给我造成一个令人讨厌的瓶颈。

我最初的方法是提高验证线程的优先级,但深入研究后我发现这不是保证行为,算法不应该依赖线程优先级才能正常工作。

有人有任何替代想法吗?谢谢!

0 投票
0 回答
273 浏览

android - 赋予任务优先级android

我有一个 android 应用程序,其中有一些通过 javascript 实现并加载到 web 视图中的滚动文本代码。它工作正常,但每当处理器忙时(就像我的应用程序中有许多计时器用于更新、幻灯片放映、相机图像处理等),自动收报机会停止片刻然后恢复。

我可以给 Web 视图更高的优先级,使其操作不受其他进程的阻碍吗?

0 投票
2 回答
1447 浏览

java - 如何在 Eclipse 断点中降低 Java 测试运行程序的优先级?

如果我在 Eclipse 中调试一些多线程 Java 代码 - 使用主类 RunTest 和一个有趣的类 QueueListener。

假设:

  • 初始化 RunTest 时 - QueueListener 在后台运行。
  • 当 RunTest 完成时 - QueueListener 被终止
  • RunTest 中只有一个方法——其中有一个断点
  • QueueListener 中有一个方法,其中有一个断点
  • QueueListener 可以反复运行
  • RunTest 每次执行只运行一次(父类)

在 Eclipse 中调试时 - 两个断点都会出现。但是 Eclipse 优先考虑 RunTest - 我必须通过在调试器中选择该线程来手动将其翻转到 QueueListener - 并一遍又一遍地重复这一点。

有没有办法告诉 Eclipse 我对 QueueListener 更感兴趣,并认为 testrunner 的优先级较低——当它选择要显示的调试断点时?

0 投票
2 回答
723 浏览

multithreading - Lua 中的线程优先级

我看了一下 Lua 的书,了解到 Lua 中的多线程是协作的。我找不到有关线程优先级的一些信息。我猜想具有相同优先级的线程会一直运行到完成,因为多线程是协作的,或者完成了一个yield。如果一个线程的优先级高于另一个线程呢?

它是否能够中断具有较低优先级的线程,或者当具有较低优先级的线程运行到完成时它会运行下一个?

0 投票
1 回答
619 浏览

windows-ce - Win CE 6.0 以太网读/写线程优先级

我正在使用 win CE 6.0,需要编辑负责从以太网读取和写入的线程的优先级。但是我找不到任何负责此目的的代码。你知道我在哪里可以找到它们吗?

问候

0 投票
2 回答
184 浏览

c - 通过知道线程名称来设置线程的优先级

我正在为 Win CE 开发一个 rt 驱动程序,为了实现我的目的,我需要能够更改线程的优先级。但问题是,我没有源代码,特别感谢微软!因此,我无法在创建线程的位置设置线程的优先级。

目前我所知道的是我从 Visual Sudio 的线程窗口中读取的线程的名称(线程名)。(pThread,hThread 的值总是会改变,因此我不能使用它们。只有静态的东西是线程名。)我可以只知道线程的名称就为线程分配一个值吗?(我可以通过知道它的名称找到它的唯一线程 ID 吗?)我检查了线程的内置函数,存在一个 GetCurrentThread 函数,它检索调用线程的伪句柄。但是,它不适合我。因为将来我不能确定当前线程是我想要的线程。因此我可以设置不同线程的优先级。

总结一下:有没有办法通过只知道线程名称来设置线程的优先级?

问候,

森提乌斯