问题标签 [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 回答
2620 浏览

c# - 如何确保特定的后台工作线程在另一个后台工作线程之前执行?

我有一个 WPF 应用程序,其中有两个在加载时运行的后台工作线程。

第一个(bw1)在应用程序启动时产生,第二个(bw2)在经过一段时间后产生。

我处于无法从第一个(bw1)“worker_completed”中生成第二个后台工作人员( bw2 )的情况。

目前,我有一个类级 bool 变量(默认false),并将其设置truebw1的 worker_completed 中。

bw2开始时,我检查上面的 bool 是否为假,如果是,bw2将休眠 100 毫秒。

这在大多数情况下都有效。我想改进它。

  • 我可以在bw1中使用线程优先级(例如将其设置为最高)以确保在bw2休眠时执行bw1吗?

  • 有没有一种事件驱动的方式可以实现这个目标?

0 投票
1 回答
2138 浏览

c# - 更改操作的线程优先级

我有一个动作,

如何提高运行此操作的线程的优先级?我知道如何在简单的线程中做到这一点。

但是一个动作的优先级呢?

0 投票
3 回答
3574 浏览

c++ - 不能在 C++ 中引发优先级反转

出于演示目的,我试图在一个小型C++程序上引发优先级反转,但我不能:持有互斥锁的低优先级线程不会被抢占并继续在关键部分运行。这就是我正在做的事情:

...但它不起作用,我无法获得想要的优先级反转。

这就是发生的事情:

据我了解,对于像 Linux 的 CFS 这样的调度程序,非实时线程(SCHED_OTHER)将不会运行,直到没有任何实时线程(SCHED_FIFO 或 SCHED_RR)处于运行状态。但我已经实现了这个线程同时运行:

  • (L) 一个非实时 (SCHED_OTHER) 线程锁定互斥体并消耗 CPU
  • (M) 几个实时线程 (SCHED_FIFO , & priority > 0) CPU 密集型和非等待锁定互斥锁
  • (H) 一个等待锁的实时线程(SCHED_FIFO 和最高优先级)

运行的实时 CPU 密集型线程 (M) 比我系统的 CPU 数量多……但持有锁的非实时线程 (L) 仍在消耗 CPU 并完成它的工作并在“M”个线程完成消耗 CPU。

为什么低优先级线程没有被抢占,应用程序死锁,我无法获得优先级反转?

我在内核 2.6.38-13 的 Ubuntu 桌面 11.04 上使用 g++ 4.5.2。

0 投票
2 回答
1065 浏览

java - 缓冲阅读器和优先级队列一起工作?

我正在处理一个从 .csv 文件中读取项目并将它们写入远程数据库的程序。我正在尝试对程序进行多线程处理,为此我创建了 2 个具有不同连接的进程线程。为此,将 .csv 文件读入缓冲阅读器,并处理缓冲阅读器的内容。但是,线程似乎一直在复制数据(将每个元组的两个副本写入数据库)。

我一直在试图弄清楚如何在 Java 中对缓冲区进行互斥,而我能想到的最接近的事情是优先级队列。

我的问题是,您可以使用缓冲阅读器将文件逐行读入优先级队列吗?IE

您会看到缓冲阅读器用于读取 .csv 文件。有没有办法在函数外部设置优先级队列,以便缓冲读取器将元组放入优先级队列中,然后每个程序线程访问优先级队列?

0 投票
2 回答
572 浏览

ios - 我想优先考虑每个后台线程并逐渐执行

此代码生成内存不足警告,因为后台 5 线程几乎同时加载图像。

我想优先考虑每个线程并进行锁定和解锁。我会一步一步地制作线程。图片 1 加载 -> image2 加载 -> image3 加载 -> image4 加载。

我怎样才能做到这一点?

视图控制器

加载图像

图片添加

图片来自网址

0 投票
3 回答
1863 浏览

java - Is there a way to set the priority of the background thread used by a SwingWorker?

In Java is there a way to set the priority for the thread that will be calling the doInBackground() method of a SwingWorker object?

In the Thread API there is a setPriority() method. The SwingWorker.execute() method schedules the swingworker for execution on a worker thread. I would like to have access to that worker thread to set it's priority.

From my understanding this worker thread comes from a default worker thread pool. Would the only way to handle this is to use my own executor?

0 投票
2 回答
7374 浏览

linux - SCHED_FIFO 线程在 Linux 中被 SCHED_OTHER 线程抢占

我写了一个测试程序来测试一下SCHED_FIFO。我了解到SCHED_FIFO不能被SCHED_OTHER线程抢占。但是我无法解释多次运行同一程序时获得的结果。

我在多次运行中得到了意想不到的结果,我看到线程SCHED_FIFO抢占了SCHED_OTHER,即根据程序,线程 2 处于FIFO模式,而线程 1处于SCHED_OTHER模式。我多次看到thread2被thread1抢占。

有人可以帮我找出问题吗?

0 投票
1 回答
800 浏览

c++ - NSOperationQueue 与 pthread 优先级

我有这个问题:

  • 我有一个使用一些线程的 C++ 代码。这些线程是 pthread 类型的。
  • 在我的 iPhone 应用程序中,我使用NSOperationQueue了一些 C++ 代码。

问题是这样的:C++ pthread 的优先级总是低于NsOperationQueue.

我怎样才能解决这个问题?我也试图给予低优先级,NSOpertionQueue但这个修复不起作用。

0 投票
1 回答
1910 浏览

c - 与 POSIX 系统上的调度有关的互斥锁和线程优先级

在 POSIX 系统(linux 等)中,当多个线程锁定一个公共互斥体时 - 是始终观察到的锁定顺序,还是在调度临界区中的下一个线程时线程优先级偏向更高优先级的线程?

标准是否提到了有关行为的任何内容?因为据我所见,它似乎只提到了所需的接口。

请注意,我正在寻找任何符合 POSIX 的系统(不仅仅是 linux)的指导,所以请随意建议其他操作系统(QNX、Minix 等)的行为。

0 投票
1 回答
346 浏览

java - 具有优先级设置的线程

我刚刚制作了一个包含主线程在内的三个线程的倒计时应用程序。我将 CountdownEven 设置为低,以便 countdownOdd 将首先显示,但在输出中没有发生任何事情。任何人都可以看到问题吗?