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

做网站的费用怎么做账wordpress+浏览人数

做网站的费用怎么做账,wordpress+浏览人数,c 开发手机网站开发,石家庄百度提升优化目录 一 . Java 中的定时器 二 . 模拟实现定时器 (1)为什么用堆而不用链表 (2)实现元素的比较 ​编辑(3)初始队列为空的情况下 (4)等待时间问题 (5&#xf…

目录

一 . Java 中的定时器 

二 . 模拟实现定时器 

(1)为什么用堆而不用链表 

(2)实现元素的比较 

​编辑(3)初始队列为空的情况下 

(4)等待时间问题 

(5)为什么不使用 PriorityBlockingQueue ? 


一 . Java 中的定时器 

在我们 Java 的标准库中提供了一个 Timer 类,Timer 类的核心方法就是 schedule

schedule 包含了两个参数,第一个参数指定即将要执行的任务代码,第二个参数指定多长时间后的执行(单位为毫秒)

我们可以多创建几个来更直观的感受一下:

二 . 模拟实现定时器 

现在我们来根据 Java 中的定时器来模拟实现一个定时器:

关于代码有几处难点,我们一个一个来解答:

(1)为什么用堆而不用链表 

(2)实现元素的比较 

(3)初始队列为空的情况下 

在我们一开始,队列为空的情况下,我们程序一进入 while 循环,加锁,然后判断队列是否为空,队列为空,continue 跳转到下一次循环,再加锁,再判断,又为空 . . . . . . 这样会造成程序在短时间内进行大量的循环,且这些循环都是无意义的。就类似于 “ 线程饿死 ” 的情况。

所以这里我们使用 wait 和 notify 来避免这种 “ 线程饿死 ” 的情况。

(4)等待时间问题 

这里我们怎样来解决这个问题呢?依旧是通过 wait ,但是我们在这里不通过 notify 来唤醒,而是通过我们程序执行的时间与当前时间戳的差值来决定等待的时间,这样就可以尽可能的避免在无效的时间多次循环。

我们在 wait 的时候,线程阻塞,释放 CPU 资源,这样我们的 CPU 就可以充分给别的线程去使用了。大大提高了我们 CPU 的利用率。

注意:这里不应该使用 sleep 直接让线程 “ 睡眠 ”

(4 . 1)因为如果在我们等待执行的过程中,新添加了一个需要更早执行的任务,这样子 sleep 就不能察觉到这个新任务。

而我们的 wait 不一样,在我们的 schedule 添加任务的方法中,我们在添加任务的时候会进行 notify 操作,也就是说当我们使用 wait 的时候,在添加了新任务时,wait 就会被 notify 唤醒,而不至于在 wait 的过程中察觉不到新任务的添加。

(4 . 2)sleep 在 “ 休眠 ” 的时候,是不会释放锁的。也就相当于是 “ 抱着锁睡 ” 的。这就意味着其他线程想拿到锁就拿不到了,所以我们新的任务压根就添加不进来。

(5)为什么不使用 PriorityBlockingQueue ? 

如果我们使用 PriorityBlockingQueue ,那么就需要用 take 来获取当前时间,那么在此处就有可能触发线程阻塞。且我们的下面的 wait 操作也可能触发线程阻塞。

两把锁,多个线程可能出现死锁情况,但并非是 100% 会死锁,也可以通过精心控制这里的加锁顺序来避免死锁情况,但是这样代码的复杂程度就提高了很多很多,不如我们使用 PriorityQueue 来到方便。

OKK,今天就讲这么多啦,主要就是认识 Java 中的定时器与怎样实现定时器,虽然这一期看似内容少,但是实现定时器这一段代码是我们之前学习多线程的集大成之作,囊括了 synchornized 加锁、wait 和 notify 等等,大家还是要好好理解。那么,咱们下期再见吧,与诸君共勉!!!


文章转载自:

http://uRMzhPC4.cyjjp.cn
http://wX7FuM2m.cyjjp.cn
http://kVP1aW0G.cyjjp.cn
http://s30H8L0i.cyjjp.cn
http://HwMIbkvZ.cyjjp.cn
http://uC1XFMJY.cyjjp.cn
http://4A4RvI0H.cyjjp.cn
http://B1w1lPm5.cyjjp.cn
http://oATd5QNm.cyjjp.cn
http://m4yohVro.cyjjp.cn
http://gXd1Tlmv.cyjjp.cn
http://RxGOGPpT.cyjjp.cn
http://tBIOiohB.cyjjp.cn
http://qFqpAvGR.cyjjp.cn
http://CkH9yEBm.cyjjp.cn
http://BnQfjcD8.cyjjp.cn
http://1oUEsoml.cyjjp.cn
http://gHm2Zpxj.cyjjp.cn
http://kUMi9itW.cyjjp.cn
http://xI38RlMM.cyjjp.cn
http://gEUezeZ7.cyjjp.cn
http://AKIZtjE8.cyjjp.cn
http://kA98xpDT.cyjjp.cn
http://NJjahos7.cyjjp.cn
http://dgKMSikU.cyjjp.cn
http://AIA0kWx5.cyjjp.cn
http://8ViNRxQo.cyjjp.cn
http://GnzoKGnH.cyjjp.cn
http://TIyndBaM.cyjjp.cn
http://DBVqZ0X2.cyjjp.cn
http://www.dtcms.com/wzjs/626594.html

相关文章:

  • 苏州市建设人才网官方网站wordpress数据库填写
  • 梧州网站推广牛商网朱依静
  • 钓鱼网站怎么制作html九江网站开发公司
  • 微信购物网站开发建设搜索引擎友好的网站
  • 绵阳做网站的公司seo官网优化详细方法
  • 显示网站运行时间代码响应式网站例子
  • 做网站必须要注册公司么淮北网站网站建设
  • 网站用的是建站公司的系统动态型网站建设哪里便宜
  • 做电影网站需要用什么空间微信小程序制作精灵
  • 申请备案 关网站asp新闻发布网站模板
  • asp.net做的网站模板建立网站商店
  • 专门做旅游攻略的网站有哪些网站开发的付款方式
  • 佛山网站优化公司营销网站费用
  • 镇江网站设计做字幕网站
  • 品牌网站建设报价单wordpress数据库删除
  • wordpress房产中介模板seo短视频入口
  • 做网站 怎么连到数据库自己做公司的网站
  • 漳州模板网站建设wordpress更换域名教程
  • 做盗版网站的中英文双语企业网站
  • 网站建设 办公系统软件开发公司属于什么企业类型
  • win8风格网站开发实例做网站做好用的软件
  • 网站运营有哪些岗位网页报价
  • 广州公司注册地址提供seo短视频加密路线
  • 北京seo网站管理个体工商户可以申请网站建设吗
  • 天津城市基础设施建设投资集团有限公司网站字母logo在线设计
  • 中升乙源建设公司网站一流的郑州网站建设
  • 高校网站建设费用mysql数据做彩票网站
  • 网站关键词标题怎么写自学编程网站
  • 海洋优质的网站建设主页网址
  • 个人网站如果做怎样用网络挣钱