首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >睡眠应用设计

睡眠应用设计
EN

Stack Overflow用户
提问于 2016-02-16 20:56:14
回答 4查看 69关注 0票数 0

我正在为练习编写一个简单的应用程序,我想每N分钟显示一条信息,然后睡一会儿。

我的问题:设计具有此功能的应用程序的最有效方法是什么:先睡一会儿,然后醒来做点什么。我是一名学生,在学校,我们用线程编写应用程序,在编写了一个基本内核之后,我了解了一些调度和时间分割的基本知识。

我的目标是更好地理解如何编写一个占用空间非常小的小程序(以及如何在这个小示例中达到这个小占用空间),但是可以运行几个星期。

  • 我可以在Java或类似的语言中使用Thread.sleep(N)。但这并不能保证睡眠的精确性,事实上(据我所读),睡眠时间可能不会接近N秒。像这样的文章似乎不鼓励睡眠()。
  • 我想要创建一个线程,我可以用信号每N秒唤醒一次。但是,主()线程将不断地工作和计数时间。这也是非常浪费,因为我会浪费周期计数时间。

我想,理想情况下,我希望进程在N分钟内不运行,然后(通过OS)在一些时间片之后醒来,但我不确定除了but ()之外还有其他方法。我正在用Java编写它,但我可以使用C或Python,如果它们能做得更好的话(我觉得这不重要)。我还在研究,但我想我也会从社区中得到一些提示。

这个程序是一个简单的提醒,告诉我伸展和使用站立的桌子。)更好地理解线程是实际目标。

EN

回答 4

Stack Overflow用户

发布于 2016-02-16 21:00:41

关于Thread.sleep的评论实际上是关于比你的用法更精确的,海事组织。Thread.sleep应该足够精确以满足您的需要。您可以查看一个ScheduledThreadPoolExecutor,它可以帮助您摆脱一些棘手的线程管理,随着程序的复杂性增加,这是一件容易出错的事情。

票数 1
EN

Stack Overflow用户

发布于 2016-02-16 21:04:59

查看文档中的java Timer和文档类。

票数 0
EN

Stack Overflow用户

发布于 2016-02-16 21:14:21

代码语言:javascript
复制
 Well, From application perspective as you mentioned you can use the Thread.sleep(N). 
 However the accuracy totally relied on the underlying machine. 
 (Read the docs on http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#currentTimeMillis())
  You  can also use this SOF to get more options : http://stackoverflow.com/questions/824110/accurate-sleep-for-java-on-windows
 on the under relying machine. 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35442803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档