问题标签 [scheduling]

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 回答
290 浏览

multithreading - 操作系统尝试最小化 TLB 刷新的难度有多大?

我想知道操作系统中是否实现了一种通用机制来最小化 TLB 刷新,例如通过将同一进程中的线程分组到“待调度”列表中。

我认为这是决定在线程上使用进程时的一个重要因素。如果操作系统不关心下一个线程是否在同一个进程空间中,那么线程“最小化 TLB 刷新”的所谓优势可能被高估了。是这样吗?

考虑一个具有数百个线程和数十个进程的系统。如果这些没有以串联方式在同一进程中调度线程的方式进行优化,我们对线程性能的期望可能不会那么大。

如果问题不是那么清楚,我会举例说明。

0 投票
3 回答
4196 浏览

python - python中的调度问题

我正在使用 python 将硬件 USB 嗅探器设备与供应商提供的 python API 连接,并且我试图在无限循环中的单独线程中从设备中读取(usb 数据包)(工作正常)。问题是我的主循环似乎再也没有被安排(我的读取循环得到了所有的关注)。

代码看起来很像这样:

(我可以粘贴实际代码,但由于您需要硬件设备,我认为它不会有太大帮助)。

我希望这段代码在主线程终止整个程序之前开始转储 USB 数据包大约一秒钟。但是,我看到的只是“睡眠 1”,然后该usb_dump()过程将永远运行。如果我在程序的内部循环中取消注释“time.sleep(0.001)”语句,usb_dump()事情就会以我期望的方式开始工作,但是python代码变得无法跟上所有传入的数据包:-(

供应商告诉我这是一个 python 调度程序问题,而不是他们的 api 的错,因此对我没有帮助:

«但是,在 Python 中使用线程时,您似乎遇到了一些细微差别。通过将 time.sleep 放在 DumpThread 线程中,您明确地向 Python 线程系统发出信号以放弃控制。否则,由 Python 解释器决定何时切换线程,它通常在执行了一定数量的字节码指令后才会这样做。»

有人可以确认python是这里的问题吗?是否有另一种方法可以使 DumpThread 释放控制?还有其他想法吗?

0 投票
3 回答
398 浏览

algorithm - 计算任务开始时间

我有一个要求如下(相信我,我太老了,不能做作业咧嘴笑

我有一堆以各种频率运行的任务。他们也有一个开始的“种子”日期/时间。起始种子是过去的某个时间,可能是一分钟前,也可能是 5 年前。

我需要使用开始种子日期/时间和频率来计算任务的下一次运行时间 - 它不能简单地是“现在”+任务频率(对于那些在 MS SQL Server 上安排了作业的人来说,这是一个熟悉的概念)

现在愚蠢的做法是获取起始种子并继续添加频率,直到它变得大于“现在”。这几乎不是最优的。天真的方法是获取开始种子日期,将其更改为今天的日期并保持时间不变,然后添加频率直到它大于现在,但假设频率是 24 小时的倍数。

那么最好/最快的方法是什么?C# 解决方案的加分点,但这对于任何语言来说都足够通用:)

0 投票
5 回答
66417 浏览

java - 每 10 分钟调用一次函数

我不是专家,只是初学者。所以我恳请你为我写一些代码。

如果我有两个类,CLASS ACLASS B,里面CLASS B有一个函数叫做funb(). 我想CLASS A每十分钟调用一次这个函数。

你已经给了我一些想法,但是我不太明白。

你能发布一些示例代码吗?

0 投票
1 回答
850 浏览

algorithm - 匈牙利算法和多因素

我有一种情况,我需要为几个事件分配人员。如果我们只是将价格作为一个因素,那会很好,但是有很多因素会影响。

首先,一些背景。这是一个非营利组织,该组织为因任何原因住院的儿童宣传故事时间,因此他们依靠志愿工作来做到这一点。因此,由于他们依赖于人们的善意,他们给人们尽可能多的工作,人们可以/想做的事情,变化如下:

  • 有的人只能做上午,有的人只能做下午;
  • 有的人只能周一、周四去,有的人8、12月不能去;
  • 有些人一个月只能去一次,有些人可以去4次(甚至其他人在这些行动中被给予“优先级”,因为他们更有经验,可以每月做10次)

所以,我有点想通了前两个。由于匈牙利算法是关于价格的,我会给他们一个愚蠢的高价格,因为他们不能去。但是,你会怎么做其他人?

我想过给他们打分。类似这样的东西:一个人每月可以这样做一次需要花费大约 1000 点。如果某人每月可以去 10 次,则该人花费 100 点(1000 基除以 10)。此外,分配此费用的方法是在执行单独操作时提高价格,如下所示(选定的人在其相关成本上有 *):

第一次迭代

第二次迭代

这将是在所有人之间进行相应分配的方式,给予那些可以多次这样做的人更多的优先权。

你怎么想,你会怎么做?

0 投票
1 回答
83 浏览

scheduling - Manugistics/Avyx 森林和树木调度实用程序

1994 年,有人使用定义森林和树木的软件调度包为 NASA 编写了一个调度包。除了一个库之外,我拥有该软件包的完整源代码。包含文件中没有任何迹象表明它是谁写的,但我有理由相信它是 Manugistics。任何人都可以提供任何见解吗?

0 投票
3 回答
1029 浏览

java - 如何安排代码执行?

我正在开发一个需要安排一些代码的网络应用程序。我正在使用石英。现在的问题是我希望它在每天之后工作,或者说 24 小时。请让我知道如何做到这一点。我以前没有这样做过,我正在使用调度程序 API 中的示例代码。

0 投票
5 回答
1516 浏览

java - J2EE Web 应用程序中基于调度的执行

我想要关于在 Java Web 应用程序中调度执行的建议。(目前在Tomcat上运行,但我想避免任何特定于tomcat的东西)。

我认为以下内容定义了我感兴趣的问题的方面。

考虑一个定期轮询一组文件以获取更新的应用程序。我想提供一个用户界面,允许用户独立定义给定文件的轮询间隔,并根据用户输入更新执行计划。

如何在 Web 应用程序中安全地实现这一目标?

0 投票
10 回答
2703 浏览

c# - ASP.NET-如何定期监控数据库表?

我正在使用 VS 2008 (C#) 开发一个网站。我目前的任务是开发一个应该执行以下任务的模块:

  • 每15分钟一个进程需要与数据库通信,以了解是否有新用户通过注册添加到数据库中的“用户”表中
  • 如果它找到一个新条目,它应该将该条目添加到一个 xml 文件(比如NewUsers18Jan2009.xml)。

为了实现这一点,以下哪一项最合适?

  1. 线程
  2. 视窗服务
  3. 其他

是否有任何样本可以证明这一点?

0 投票
2 回答
1120 浏览

c# - 将 Timer 类从 java 转换为 c#:调度任务

我正在将应用程序从 Java 移植到 C#,并且遇到了与 .java.util.TimerSystem.Threading.Timer. 事实上,在 Timer 类的 Java 版本中,有一个用于调度任务的功能(在原始代码中使用),这在 .NET 版本中不存在,可以在其中调度一个任务(通过委托函数)一次。

是否有解决方案,甚至是一个小的类集来实现该功能?

我注意到存在几个调度库(一个例子是 Quartz),但我更喜欢一种能够最大限度地减少要使用的代码量的解决方案。

谢谢你们!:)