问题标签 [thread-sleep]

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

python - 非阻塞调用休眠

我正在寻找一个最佳睡眠值来从非阻塞套接字接收数据。例如:

没有睡眠会导致 100% 的 CPU 使用率,所以知道如何获得最佳的 CPU 使用率和带宽吗?睡眠需要多长时间才能让 CPU 进行线程切换?

顺便说一句,通过 SO_SNDBUF/SO_RECVBUF 设置套接字的缓冲区并设置 TCP_NODELAY 是否有意义,或者不应该将它们组合起来?

0 投票
5 回答
19744 浏览

c# - 线程睡眠/等到新的一天

我正在循环中运行一个进程,该进程限制了它每天执行的操作数。当它达到这个限制时,我目前已经让它检查循环中的时间以查看它是否是新日期。

最好的选择是:

  • 保持每秒检查时间以获取新日期
  • 计算直到午夜的秒数并睡眠该时间长度
  • 还有什么?
0 投票
4 回答
908 浏览

vb.net - VB .net 在很短的时间内无法 sleep()

我想为 VB 中的网络应用程序的packetSize/Bandwidth持续时间睡觉。

该值在“10^-3 - 10^-6”秒之间变化。

当我使用 Sleep() 函数时,如果它小于统一(< 1 秒 ~~ 0 秒??),我认为它不会在持续时间内处于睡眠状态。

编辑:

  1. 在上述范围的短暂小睡后,我必须继续发送数据包。因此,我无法指定,例如,在客户端休眠 0.001 毫秒。
  2. 我的要求是 CS 应用程序的客户端,它读取文件并以定期或不定期的睡眠间隔向服务器发送小数据包。稍后,服务器捕获数据包并以自己的速率对其进行处理。

如何做到这一点?

0 投票
1 回答
1608 浏览

java - 在 Spring MVC 请求处理程序中调用 Thread.currentThread().sleep(2000) 的第二个请求有什么影响?

在调用第三方服务为用户更新某些实体时,我需要等待 Spring MVC 请求处理程序中的条件。

平均等待时间约为 2 秒。

我正在调用Thread.sleep以允许远程调用完成并在数据库中更新实体:

之后,我从数据库中检索更新的模型并显示视图。

但是,对到达此控制器/请求处理程序进行处理的并行请求会有什么影响?

并行请求也会经历等待吗?

或者它们会被派生到单独的线程中,因此不受当前请求所经历的延迟的影响?

0 投票
5 回答
4447 浏览

.net - 我可以提高 Thread.Sleep 的分辨率吗?

Thread.Sleep() 分辨率从 1 到 15.6 毫秒不等

鉴于此控制台应用程序:

我预计输出是接近 100 的 100 个数字。相反,我得到了这样的结果:

99 99 99 100 99 99 99 106 106 99 99 99 100 100 99 99 99 99 101 99 99 99 99 99 101 99 99 99 99 101 99 99 99 100 99 99 99 99 99 103 99 99 99 99 100 99 99 99 99 813 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1559 1560 1559 1559 1559 1559 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1558 1559 1558 1558 1558 1558 1558

但有时我不会得到任何准确的结果;每次都是〜1559。

为什么不一致?

一些谷歌搜索告诉我 15.6 毫秒是时间片的长度,这解释了 ~1559 的结果。但为什么有时我会得到正确的结果,而有时我只是得到 15.6 的倍数?(例如 Thread.Sleep(20) 通常会给出 ~31.2ms)

它如何受硬件或软件的影响?

我之所以这样问,是因为是什么让我发现了它:

我一直在 32 位双核机器上开发我的应用程序。今天我的机器升级到 64 位四核并重新安装了完整的操作系统。(Windows 7 和 .NET 4 在这两种情况下,但我不能确定旧机器有 W7 SP1;新机器有。)

在新机器上运行我的应用程序后,我立即注意到我的表单需要更长的时间才能淡出。我有一个自定义方法来淡化我的表单,它使用 Thread.Sleep() 值从 10 到 50 不等。在旧系统上,这似乎每次都能完美运行。在新系统上,褪色所需的时间比应有的要长得多。

为什么我的旧系统和新系统之间的这种行为会发生变化?这与硬件或软件有关吗?

我可以让它始终准确吗?(~1ms 分辨率)

我可以在我的程序中做些什么来使 Thread.Sleep() 可靠地精确到大约 1 毫秒吗?甚至10毫秒?

0 投票
5 回答
6512 浏览

java - 如何在java中摆脱这种“静态方法应该以静态方式访问”?

我在 java 应用程序中有以下代码

但是 Eclipse 向我显示以下警告:

我为从未发布带有警告的代码感到非常自豪,我想摆脱这个警告(它发生在两个不同的类中)。我需要发布整个代码吗?

0 投票
4 回答
1742 浏览

c# - 在 C# 中唤醒线程

我正在寻找一种简单的方法来让线程进入睡眠状态并唤醒它。线程在后台无限循环运行,有时会做一些工作,有时只是运行。我发现 Sleep() 没有对应的 Wait() 并且使用 Interrupt() 唤醒线程会导致异常。显然,睡眠线程并不意味着被打扰。
因为我知道作品何时出现,告诉线程似乎是个好主意,而不是让它一遍又一遍地检查。

如何将线程置于“较轻的睡眠”状态,以便能够每秒单独醒来或在其他线程的命令下醒来?

-

0 投票
1 回答
972 浏览

c# - 在 C# 控制台应用程序中等待单向 WCF 调用完成

我有一个 WCF Web 服务(不在我的控制之下),它实现了我需要通过 IsOneWay=true + 回调接口访问的功能,其中一种方法通知处理完成。它是这样编写的,因为它最初是为从 GUI 访问而设计的。

但是,我需要从控制台应用程序访问相同的方法以批量使用。目前,我实现这一点的粗略方法是将标志设置为 false,然后在调用 WCF 方法后,我实现了一个带有简短 Thread.Sleep() 调用的 while 循环。这显然有效,但似乎是实现最终结果的一种非常糟糕的方式。

我想知道这样做的正确方法是什么。注意:该服务不在我的控制范围内,并且刚刚通过 IDE 添加了引用,尽管我可以轻松地敲出代码实现等。

0 投票
2 回答
2016 浏览

c# - 如何取消带睡眠的后台工作人员?

我无法取消其中包含 a 的后台工作人员Thread.Sleep(100)

如果我删除Thread.Sleep(100)然后取消工作,但否则它会继续进行(进度条不会停止)。

编辑:添加了其余的代码

0 投票
3 回答
2882 浏览

multithreading - 在线程中“浪费时间”的 CPU 效率最高的方法是什么?

我有许多线程(100 个),每个线程一次执行几秒钟。当它们执行时,它们花费大量时间等待来自另一个系统(串行设备)的响应。我注意到一次执行 100 个线程可能会占用资源,因此我实际上限制了可以在任何时候启动的线程数。

尽管在我看来,在线程内等待外部事件必须有好的和坏的方法。这种方法是 CPU 密集型的吗?:

这种方法是否使它更有效?:

* 附加信息 *

环境是 x86 Windows XP。线程代码是与串行设备进行的一系列冗长且复杂的交互,但一般来说,它包括将字符写入 COM 端口(使用 AsyncFree 串行库)并通过驻留在传入字符缓冲区等待字符返回,以及当它们到达时处理它们。我想串行库使设备读写。线程中的时间可以长到一分钟,也可以短到几秒,但大部分时间都花在等待字符离开端口,或者等待响应字符(波特率很慢),因此我的问题是线程在等待时的最佳行为方式。目前我正在Sleep循环等待CharactersInBuffer变为非零,在每个字符到达时处理它,并在我有完整响应时退出线程。所以代码看起来更像(忽略超时处理等):