java 闹钟的实现思路

haoyyy 2012-09-13 01:00:04
以前写了一个后台闹钟,使用timer,每秒检查一次年月日时分秒是否相等。感觉这种方法太笨,而且效率太低。现在想想我能想到的就只有Timer和Thread.sleep()来实现闹钟。但是感觉sleep()如果睡的太狠了,会有可能存在时间不准确的现象(个人感觉)。假如我想有50个闹钟,那就需要50个线程,他们都睡,也有点浪费资源。问题:
1.经典的闹钟实现思路是什么样的?
2.操作系统定时调度是什么样的,是不是也类似?
...全文
452 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
计划任务,直接WIN7的开始-搜索输入 “计划任务”,创建一个 “基本任务”,然后他让你输入日期时间和要启动多少次启动哪个程序就可以了,到指定时间他就执行你的程序。你的程序写个播放声音就行了。
不过就算每秒读取一次时间对CPU也没什么效率不效率,现在的CPU又不是当年286

haoyyy 2012-09-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

写一个脚本打开闹钟程序,把这个程序加到计划任务里:Linux和Windows的做法不一样,Linux执行一个sh就可以,Windows不太清楚。
[/Quote]
可不可以粗略讲一下操作系统中计划任务是如何实现的?临时还没有时间查。。
  • 打赏
  • 举报
回复
计划任务是最好的,
Inhibitory 2012-09-13
  • 打赏
  • 举报
回复
写一个脚本打开闹钟程序,把这个程序加到计划任务里:Linux和Windows的做法不一样,Linux执行一个sh就可以,Windows不太清楚。
前言 Java最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电 视机、、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需 求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Su n看到了Oak在计算机网络上的广阔应用前景。于是改造了Oak,以"Java"的名称正式发布 。   Java 编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继 承了 C++ 语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再 被引用的对象所占据的存空间,使得程序员不用再为存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。   Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进 制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实 现了"一次编译、到处执行"的跨平台特性。不过,每次的编译执行需要消耗一定的时间 ,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。   与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。"Java 语言靠群体的力量而非公司的力量"是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和 封闭式的模式完全不同。   Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高 性能、多线程和动态的语言。 正文 1.1课程设计目的 《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实 践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业 学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计 目的是加深对理论教学容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发 中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行 软件开发、并在实践应用方面打下一定基础。 2.1工程概况 2.1.1案例提出及工程用时 经过两天在图书馆以及网络上查阅的资料,然后提出这次课程设计的目标《贪吃蛇游 戏》的设计。然后接下来就是查阅更多的资料,制定接下来的详细计划,最终计划用两周 的时间完成此次课程设计提出的案例。 2.1.2开发环境 硬件环境: CPU:Intel Pentium(R)4 主频:2.40GHz 存:256MB 软件环境: 操作系统:Windows *P 编程环境: JDK 1.6 开发工具:Eclipse jdk 3.1设计方案论证 3.1.1设计思路 贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制模块。 在此只实现游戏的游戏主界面模块、游戏控制模块。并且只是实现移动速度、暂停、重 新开始等功能。 游戏主界面模块: 游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界 面、游戏的速度选择更新界面、新生方块的预览、暂停游戏按钮、重新开始游戏按钮。 从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心 悦目。 游戏控制模块: 这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、重新开始等功能。为 了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。 本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的速度控制、游戏 的暂停、游戏的退出等功能,分为: 游戏主界面模块、游戏控制模块以二个模块。 3.1.2程序概述 本程序是一个利用Java应用软件制作的贪食蛇小游戏。在游戏过程中,用户通过点击 小键盘区的方向键来控制蛇的运行方向;游戏运行过程中,如果想暂停,只需要按F3键 即可。重新开始游戏的按键为F2。当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结 束。 本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中的移动和长 度。 3.1.3程序流程图 本次游戏设计的处理流程如图1所示。 3.1.4 总设计模块的划分 根据游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计,如图 2所示。 游戏控制模块的主
Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释执行命令的使用10 1.2.5UltraEdit的使用11 1.3一个简单的Java应用程序14 1.4一个简单的Java小程序16 1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型数据29 2.3.6字符型数据30 2.3.7布尔型数据32 2.3.8变量赋初值33 2.3.9变量的作用域34 2.3.10数据类型转换34 2.4运算符与表达式37 2.4.1算术运算符和算术表达式38 2.4.2关系运算符和关系表达式43 2.4.3逻辑运算符和逻辑表达式44 2.4.4条件运算符和条件表达式48 2.4.5位运算符和位运算表达式50 2.4.6赋值运算符和赋值表达式53 2.4.7表达式的求值顺序55 2.5流程控制语句58 2.5.1三种基本控制结构58 2.5.2表达式语句和空语句59 2.5.3块语句60 2.5.4if~else分支语句61 2.5.5多路分支switch~case语句69 2.5.6当型循环while语句71 2.5.7直到型循环do~while语句72 2.5.8当型循环for语句74 2.5.9循环的嵌套78 2.5.10跳转语句break80 2.5.11跳转语句continue82 2.6程序文本的风格84 2.6.1注释84 2.6.2程序的格式编排87 2.7基础语法实战演习88 2.7.1判断闰年88 2.7.2求最大公约数和最小公倍数89 2.7.3Fibonacci数列90 2.7.4逆向输出数字91 2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本特征101 3.2类与对象104 3.2.1类的基本结构104 3.2.2类的声明104 3.2.3创建类体105 3.2.4对象的生命周期106 3.2.5对象的创建106 3.2.6对象的使用108 3.2.7对象的释放和垃圾收集机制108 3.3成员变量的定义与使用109 3.3.1成员变量的定义109 3.3.2成员变量的访问权限110 3.3.3实例成员变量和静态成员变量114 3.4方法的定义和实现116 3.4.1方法的声明117 3.4.2创建方法体与return语句117 3.4.3局部变量和成员变量的区别119 3.4.4方法的访问权限121 3.5方法的调用121 3.5.1方法调用的形式121 3.5.2方法调用的参数123 3.5.3隐含参数this127 3.6构造方法128 3.6.1无参数构造方法的定义和使用129 3.6.2带参数构造方法的定义和使用131 3.6.3this关键字和构造方法的调用132 3.7静态方法133 3.7.1静态方法的声明和定义134 3.7.2静态方法和实例方法的区别134 3.7.3静态代码块136 3.7.4再论静态成员变量137 3.8main()方法和命令行参数139 3.9结束方法141 3.10本地方法141 3.11本章小结144 第4章继承与多态145 4.1继承的基本原理145 4.2子类对父类的继承146 4.3属性隐藏和方法的覆盖148 4.3.1属性的隐藏148 4.3.2方法的覆盖151 4.4构造方法的继承154 4.5super的使用156 4.5.1用super引用父类的成员156 4.5.2使用super调用父类的构造方法157 4.6继承的内部处理158 4.7多态的基本概念159 4.8重载159 4.8.1普通方法的重载160 4.8.2构造方法的重载161 4.8.3重载的解析163 4.8.4重载与覆盖的区别165 4.9运行时多态165 4.9.1实例方法的运行时多态165 4.9.2成员变量运行时的表现167 4.9.3静态方法运行时

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧