相关疑难解决方法(0)

Thread.Sleep小于1毫秒

我想用不到1毫秒的时间调用线程休眠.我读到没有thread.Sleep也没有Windows-OS支持.

那是什么解决方案?

对于所有想知道我为什么需要这个的人:我正在进行压力测试,并想知道我的模块每秒可以处理多少消息.所以我的代码是:

 // Set the relative part of Second hat will be allocated for each message 
 //For example: 5 messages - every message will get 200 miliseconds 
 var quantum = 1000 / numOfMessages;

 for (var i = 0; i < numOfMessages; i++)
 {
      _bus.Publish(new MyMessage());
      if (rate != 0) 
          Thread.Sleep(quantum);
 }
Run Code Online (Sandbox Code Playgroud)

我很高兴得到你的意见.

.net c# multithreading

28
推荐指数
5
解决办法
4万
查看次数

Windows上的Java准确睡眠

有没有人知道为Java提供Thread.sleep()的库,其错误不高于1-2毫秒?

我尝试了Sleep,错误测量和BusyWait的混合,但我不能在不同的Windows机器上获得这种可靠性.

如果该实现也适用于Linux和MacOS,它可以是本机实现.

编辑 Nick提供的链接(http://blogs.oracle.com/dholmes/entry/inside_the_hotspot_vm_clocks)是一个非常好的资源,可以理解java所有类型的计时器/睡眠/时钟的问题.

java windows sleep

21
推荐指数
3
解决办法
2万
查看次数

暂停线程不到一毫秒

在消息传递客户端测试应用程序中,需要限制生产者线程以避免泛滥服务器.

由于传输速率约为每秒25,000条消息(每条消息40微秒),因此睡眠(1)引起的延迟时间太长.

如何在Windows上使线程休眠不到一毫秒包含一些与Windows API相关的信息.是否有Delphi的代码片段,类或库?


按照Bens的回答,我发现不同值低于15的睡眠也会提供不同的传输速率(Windows Vista):

每20条消息后休眠(1):

00:02 tx/rx 25740/3705 12831/1846 msgs/sec (77/541 microsecs/msg)
00:04 tx/rx 53101/7405 13255/1848 msgs/sec (75/541 microsecs/msg)
00:06 tx/rx 79640/11288 13260/1879 msgs/sec (75/532 microsecs/msg)
00:08 tx/rx 104520/14562 13055/1818 msgs/sec (76/550 microsecs/msg)
00:10 tx/rx 130760/18829 13066/1881 msgs/sec (76/531 microsecs/msg)
Run Code Online (Sandbox Code Playgroud)

每20条消息后睡觉(5):

00:02 tx/rx 7640/3622 3812/1807 msgs/sec (262/553 microsecs/msg)
00:04 tx/rx 14660/10794 3661/2695 msgs/sec (273/371 microsecs/msg)
00:06 tx/rx 21480/18171 3577/3026 msgs/sec (279/330 microsecs/msg)
00:08 tx/rx 28140/25642 3515/3203 msgs/sec (284/312 microsecs/msg)
00:10 tx/rx 34980/32692 3496/3267 msgs/sec (286/306 microsecs/msg)
Run Code Online (Sandbox Code Playgroud)

在阅读有关忙碌等待下限的评论后,这是意料之外的 …

delphi messaging multithreading sleep

14
推荐指数
2
解决办法
4385
查看次数

标签 统计

multithreading ×2

sleep ×2

.net ×1

c# ×1

delphi ×1

java ×1

messaging ×1

windows ×1