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

multithreading - 在服务中设置线程优先级无效

在我可以在 Windows 服务中设置线程优先级之前是否需要一些额外的配置?

在我的服务中,我有几个线程,每个线程都调用该CreateProcess()函数来启动外部应用程序。我想根据其他一些因素将线程(或进程)优先级调整为normal或。lower

问题是SetThreadPriority()函数失败并出现错误 6(无效句柄?)。我正在传递一个从PROCESS_INFORMATION::hThread(当然是在调用之后CreateProcess())获得的句柄,所以我认为句柄应该是有效的。

我还尝试使用该SetPriorityClass()功能设置进程的优先级,但也失败了。

该服务以本地用户身份登录。

0 投票
11 回答
11570 浏览

java - How can you ensure in java that a block of code can not be interrupted by any other thread

exampl:

How can you ensure that code that must not be interrupted won't be interrupted?

0 投票
2 回答
1016 浏览

multithreading - 如何更改侦听器线程优先级

我使用 Indy 10 的 TIdCmdTCPServer 组件来实现我的客户端-服务器应用程序。问题是来自客户端的请求可能相当复杂,而且我的服务器应用程序的 GUI 部分会立即失去响应能力。从Indy Documentation,我得到了那个 Indy:

使用线程优先级 tpHighest 为绑定创建和启动侦听器线程。

我可以改变这种行为吗?

0 投票
2 回答
3238 浏览

multithreading - 缺少 OpenMP 功能:线程优先级

任何人都可以考虑一下。OpenMP 功能可调整 cpu 肌肉以处理哑铃。在我对 openmp 的研究中,我们无法设置线程优先级来执行具有强大肌肉的块代码。只有一种方法(_beginthreadex 或带有 5 个参数的 CreateThread 函数)来创建具有最高优先级的线程。

这里有一些关于这个问题的代码:

这是手动设置。

这是我想看到这部分:

或者

我不知道是否有办法使用 openmp 设置优先级,请告知我们。

0 投票
2 回答
294 浏览

visual-studio - Visual Studio 插件能否收到有关 C++ 构建/CL 任务/对 CL.EXE 的调用的通知?

我希望我的 cl.exe(c++ 编译器进程)进程以低于正常的优先级运行,这样我的 UI 线程就不会受到影响。我已经为我的大多数项目打开了 /MP 构建,并希望利用所有 CPU,但不希望盒子陷入困境并且无法使用。

一位同事编写了一个实用程序来监视线程并允许用户选择进程名称以放弃优先级,但我想知道是否有可能为 Visual Studio 编写一个插件,在所有调用 CL.exe 时都会收到通知,以便您可以以编程方式降低优先级。

那么,这可能吗?VS 2008 - 现在可以构建 C++。

0 投票
1 回答
1506 浏览

c++ - 如何将Boost线程池从fifo转换为优先级?

我正在研究 Boost 线程池。

我有这样的结构:

当我需要一个线程时,我会这样称呼它:

它有效。

问题是:如何将此线程池从 fifo 转换为优先级?

我将所有内容都更改fifo\_poolprio\_pool,但我无法做到这一点 - 它没有用。我有一些错误。

在这种情况下我该如何使用prio_pool

我想我必须使用prio_task_func而不是一个类,但我想为此目的重新使用我现有的算法。

0 投票
5 回答
94207 浏览

java - 设置 Java 线程的优先级

我有一个在几个线程中运行的程序。主线程与其他线程共享一个对象,在主线程中我调用:

我怀疑主线程饿死了,无法访问obj. 如何提高主线程的优先级,还是默认情况下它已经高于其他线程?

0 投票
3 回答
7957 浏览

java - Linux JVM 是否真的实现了线程优先级?

编写了一个快速的 Java 程序,以每个优先级生成 10 个线程,并使用 BigDecimals 计算 pi(4*atan(1) 方法),每次 500,000 次,加入每个线程并报告运行方法的经过时间。是的,可能不是最好的例子,但保持基本。

我知道Bug4813310

在 C 中做这件事并不简单,但我们可以假设在 Linux JVM 上从未设置本机优先级吗?

看起来不像人们期望的那样有太大的偏差!那是在一个小型虚拟 Linux 机器上。也许只是孙的?我们将尝试 IBM J9 VM:

相比之下,总数字看起来相当不错,但从线程优先级的角度来看,这些数字没有比例。

让我们尝试在 2.6 内核上使用较旧的 Sun JVM 进行 500k 次迭代,该 JVM 经常加载平均负载很少低于 7:

让我们在一个只有 2.6 内核的真实平板上尝试 IBM 的 J9,由于系统更大,我会将迭代次数增加到 2,000,000。

一些美好的时光,但仍然没有明显的线程/进程优先级。

让我们尝试一个 Windows 盒子。我知道 Windows 有一个相当激进的线程优先级方案。任何高于正常轶事的东西都会消耗更多。因此,让我们在每个线程中进行 900,000 次迭代:

非常我们正在寻找的东西,不是吗?

那么Linux JVM显然没有线程优先级? 我知道你不能在 C 语言中真正降低 nice 级别,但我认为 JVM 工程师会想出如何保持低级调度器的排序。

0 投票
7 回答
389513 浏览

windows - 什么是“实时”进程优先级设置?

从我过去读到的内容来看,我们鼓励您不要以编程方式更改 Windows 应用程序的优先级,如果这样做,则永远不要将它们更改为“实时”。

与“高”和“高于正常”相比,“实时”进程优先级设置有何作用?进程优先级列表,范围从低到实时。

0 投票
4 回答
28708 浏览

c# - 更改线程优先级以使我的程序和计算机响应更快

我编写了一个 .NET winforms 应用程序,该应用程序使用辅助线程进行一些繁重的处理,将其进度传达回 UI 线程。一切正常,表单显示进度,我还创建了一个取消按钮来中断处理线程。但是,当耗时的过程正在进行应用程序时,我的整个计算机就会变慢。拖动窗口需要很长时间,尝试在记事本中输入字母时甚至会出现明显的延迟。

我假设我需要降低处理线程的优先级,和/或增加 UI 线程的优先级。这是正确的吗?现在两个线程都是正常优先级。

是不是跟下面的一样简单?或者还有什么我应该做的吗?

我应该如何改变优先级?我应该降低处理的优先级,还是提高 UI 的优先级,或者两者兼而有之?什么设置?高于正常,还是最高?