当前位置: 首页 > news >正文

自己做的网站怎么发到网上资源网站搭建

自己做的网站怎么发到网上,资源网站搭建,做网站 橙色怎么搭配,做网站必须要加v吗目录 一.定时器简介#xff1a; 二.定时器的构造方法与常见方法#xff1a; 三.定时器的模拟实现#xff1a; 思路分析#xff1a; 代码实现#xff1a; 在开发中#xff0c;我们经常需要一些周期性的操作#xff0c;例如每隔几分钟就进行某一项操作#xff0c;这…目录 一.定时器简介 二.定时器的构造方法与常见方法 三.定时器的模拟实现 思路分析 代码实现 在开发中我们经常需要一些周期性的操作例如每隔几分钟就进行某一项操作这时候我们就需要去设置个定时器Java中最方便最高效的实现方式是用java.util.Timer工具类在通过调度java.util.TimerTask任务来完成 一.定时器简介 ①.Timer是一种工具线程用其安排以后在后台线程中执行的任务。可安排任务执行一次或者是定期的重复执行实际上是个线程定时调度所拥有的TimerTask任务 ②.TimerTask是一个抽象类它的子类由Timer安排为一次执行或者重复执行的任务实际上就是一个拥有run方法的类需要定时执行的代码放到run方法体内. 二.定时器的构造方法与常见方法 ①.构造方法 ②.常用方法 注意事项 ①.上述方法中TimerTask是一个抽象方法其子类是一个可以被Timer执行的任务要执行的代码放在run()方法体内实现 ②.schedule()与scheduleAtFixedRate()的区别 首先schedule(TimerTask task,Date time)与schedule(TimerTask task,long delay)都只是单次执行操作并不存在多次调用任务的情况所以没有提供scheduleAtFixedRate方法的调用方式。它们实现的功能都一样那区别在哪里呢 1schedule()方法更注重保持间隔时间的稳定保障每隔period时间可调用一次。 2scheduleAtFixedRate()方法更注重保持执行频率的稳定保障多次调用的频率趋近于period    时间如果某一次调用时间大于period下一次就会尽量小于period以保障频率接近于period。 ③.每一个Timer仅对应一个线程而不是每调用一次schedule就创建一个线程 ④.Timer是线程安全的 代码实例1 import java.util.Timer; import java.util.TimerTask; public class Mian {public static void main(String[] args) throws InterruptedException {//创建定时器线程对象同时设置名字Timer timer new Timer(定时器线程);//传入要执行的任务同时设置等待的时间timer.schedule(new TimerTask() {Overridepublic void run() {String current Thread.currentThread().getName();System.out.println(current : 任务代码的执行区域~~~);}},2000);Thread.sleep(3000);System.out.println(执行结束);//结束定时器线程timer.cancel();} }运行结果 代码实例2 import java.util.Timer; import java.util.TimerTask; public class Mian2 {public static void main(String[] args) throws InterruptedException {//创建定时器线程对象同时设置名字Timer timer new Timer(定时器线程);//传入要执行的任务同时设置等待的时间timer.schedule(new TimerTask() {Overridepublic void run() {String current Thread.currentThread().getName();System.out.println(current : 任务代码的执行区域~~~);}},1000,2000);Thread.sleep(6000);//结束定时器线程timer.cancel();} }运行结果 三.定时器的模拟实现 在了解了什么是定时器和定时器的使用之后那么定时器是如何实现的呢这里我们通过模拟实现定时器来进一步加深对定时器的理解。注这里我们仅仅模拟实现Timer类不带参数的构造方法和等待delay时间后要执行的任务类以及核心方法schedule。 思路分析 Timer类通过schedule添加等待delay时间后执行的代码此时的任务可能不止一个我们需要一个容器来存放这些任务同时为了公平起见我们让先到达指定时间的任务优先执行很自然的我们可以想到用优先级队列来存储这些任务队首元素就是最先执行的任务. 同时我们也需要一个线程来扫描队首元素判断队首元素是否是需要执行的任务 综上我们自己模拟实现的定时器需要完成以下任务 ①.用一个优先级队列存放要执行的任务队首元素是最先执行的任务 ②.任务中带有时间属性记录任务所要执行的时间 ③.用一个线程来扫描队首元素判断队首元素是否需要执行 ④.这里出现多个线程同时操作共享数据的代码我们要解决线程安全问题 代码实现 import java.util.*; class MyTimerTask implements ComparableMyTimerTask{//要执行的任务代码private Runnable runnable;//ms级别的时间戳private long time;public MyTimerTask(Runnable runnable,long delay){this.runnable runnable;//计算要执行的相对时间当前时间等待时间this.time System.currentTimeMillis() delay;}public void run(){runnable.run();}public long getTime(){return time;}//重写compareTo比较方法按照时间的从小到大排序Overridepublic int compareTo(MyTimerTask o) {return (int)(this.time - o.time);}} //模拟实现定时器 class MyTimer{private PriorityQueueMyTimerTask q new PriorityQueue();//锁对象private static Object loker new Object();//构造方法中启动线程让线程进行判定与执行public MyTimer(){Thread t new Thread(()-{try{while(true){//将操作共享数据的队列锁起来一次只允许一个线程进行操作避免线程安全问题synchronized (loker){if(q.isEmpty()){loker.wait();}MyTimerTask current q.peek();//如果当前时间超过() 设定的时间此时需要执行任务if(System.currentTimeMillis() current.getTime()){current.run();//执行完成后将任务从队列中删除q.poll();}else{//否则不执行任务loker.wait(current.getTime() - System.currentTimeMillis());}}}}catch (InterruptedException e) {e.printStackTrace();}});//开启线程t.start();}public void schedule(Runnable runnable,long delay){//将操作共享数据的队列锁起来一次只允许一个线程进行操作避免线程安全问题synchronized (loker){MyTimerTask myTimerTask new MyTimerTask(runnable,delay);q.offer(myTimerTask);loker.notify();}} } //测试 public class Demo {public static void main(String[] args) {MyTimer myTimer new MyTimer();myTimer.schedule(()-{System.out.println(hello Thread ,3000 Thread.currentThread().getName());},3000);myTimer.schedule(()-{System.out.println(hello Thread ,2000 Thread.currentThread().getName());},2000);myTimer.schedule(()-{System.out.println(hello Thread ,1000 Thread.currentThread().getName());},1000);} }运行结果 参考资料 Java定时器的使用Timer简介_51CTO博客_java定时器 资源--timer的使用 - 牛李 - 博客园 (cnblogs.com) 结语 写博客不仅仅是为了分享学习经历同时这也有利于我巩固知识点总结该知识点由于作者水平有限对文章有任何问题的还请指出接受大家的批评让我改进。同时也希望读者们不吝啬你们的点赞收藏关注你们的鼓励是我创作的最大动力
http://www.hkea.cn/news/14578170/

相关文章:

  • 网站站外优化wordpress顶部菜单
  • apt安装wordpress推广优化师
  • 做网站应该了解什么深圳市建设银行网站
  • 广州建站公司兴田德润活动男女做那个网站动态图片
  • 网站最好推广的方式知名网站域名被抢注
  • 遵义网站制作如何收费seo整站优化服务教程
  • 多与pR值高的网站做链接app下载安装官方免费下载
  • 网站怎么做自然优化凡科建站提示网站建设中
  • 深圳网页设计与制作工资多少钱互联网推广seo
  • 昆明网站建设技术研发中心永久免费网址在线观看电视剧
  • 哪个外贸网站开发客户比较好用抖音代运营服务方案
  • 网站建设记账安阳县事业单位招聘2021
  • iis7 网站无法显示该页面太原企业模板建站
  • 网站上传的视频播放卡wordpress 标签页制作
  • 学网站开发要下载哪些软件有哪里可以做兼职翻译的网站
  • 中建八局土木建设有限公司网站网站建设管理汇报
  • 兰州房地产网站建设微商城开发小程序开发
  • 梅州网站优化公司百科网站推广
  • 专门做顶账房的网站清溪做网站的电话
  • 网站备案号查不到邳州城乡住房和城乡建设网站
  • 网站制作及排名优化东城免费做网站
  • 响应式网站方案wordpress修改作者信息
  • 各大网站投稿邮箱网络营销的理论基础
  • 网站二次开发的模板种类简单网站建设软件
  • 网站代码字体变大电子商务网站设计原理名词解释
  • 自己在公司上班做网站宣传 侵权吗山东网站备案注销
  • 行业协会网站建设萧县住房和城乡建设局网站
  • 怎么做网站小编网站优化的图片
  • 网站的建设域名空间网站维护推广的方案
  • 模板形的网站制作软件开发技术文档