加入收藏 | 设为首页 | 会员中心 | 我要投稿 潍坊站长网 (https://www.0536zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

物联网等技术可以在缓解气候变化风险方面发挥巨大作用

发布时间:2021-01-28 14:26:43 所属栏目:动态 来源:互联网
导读:我想了想说到:那就这样,把两种情况结合一下,常规情况下数到100就释放一次锁,但如果遇到阻塞情况,也要提前释放锁,怎么样? 大伙纷纷点头,达成了一致,随后我们还给这个锁取了一个名字:全局解释器锁GIL。 自从用上了GIL,我们大家伙干活都规矩多了,再

我想了想说到:“那就这样,把两种情况结合一下,常规情况下数到100就释放一次锁,但如果遇到阻塞情况,也要提前释放锁,怎么样?”

大伙纷纷点头,达成了一致,随后我们还给这个锁取了一个名字:全局解释器锁GIL。

自从用上了GIL,我们大家伙干活都规矩多了,再也没有出现把公共资源搞坏的情况了。

升级版GIL

再后来,多核技术开始兴起了,一个CPU里面可以同时执行多个线程。小伙伴们高兴地把这个消息散播开了。

“老大,现在CPU有多核了,咱们可以一起执行了,可不可以把那个GIL给去掉啊,这样才能利用多核的优势啊。”

“是啊,隔壁Java线程老是嘲笑我们看起来人多,实际只有一个线程在执行”

可说易行难,这么多年我们都是这样工作的,要突然去掉,出了问题谁也不敢负责啊。

“可是老大,现在这个GIL锁不公平”,新来的线程抱怨到。

“哪里不公平了?”

“我准备执行代码,发现锁在你的手里,只好原地等待,等了半天都睡着了,好不容易等到你释放了,操作系统把我给唤醒,准备去申请锁,结果发现又被你抢到了,真是浪费表情”,新的线程满脸委屈。

“是啊,老大,我也发现了,这不是偶发现象,我观察很久了,经常都会发生!频繁被唤醒,却发现白忙活一场,白白浪费CPU资源,大家都怨气很大啊”,另一个线程伙伴也说到。
 

关于JSR 310日期时间更多介绍此处就不展开了,毕竟前面文章啰嗦过好多次了。总之它是Java的新一代日期时间API,设计得非常好,几乎没有缺点可言,可用于100%替代老的日期时间API。

如果你到现在2021年了还没拥抱它,那么请问你还在等啥呢?

总结

日期时间API因为过于常用,因此你可能都觉得它毫不起眼。坦白的说,如果你没有复杂的日期时间需求要处理,如涉及到时区、偏移量、跨时区转换、国际化显示等等,那么可能觉得Date也能将就。

如果你不想做个将就的人,如果你想拥有更好的日期时间编程体验,弃用Date,拥抱JSR 310吧。
 

JSR 310规范的领导者是Stephen Colebourne,此人也是Joda-Time的缔造者。不客气的说JSR 310是在Joda-Time的基础上建立的,参考了其绝大部分的API实现,因此若你之前是Joda-Time的重度使用者,现在迁移到Java 8原生的JSR 310日期时间上来几乎无缝。

即便这样,也并不能说JSR 310就完全等于Joda-Time的官方版本,还是有些许诧异的,例举如下:

  1. 首先当然是包名的差别,org.joda.time -> java.time标准日期时间包
  2. JSR 310不接受null值,Joda-Time把Null值当0处理
  3. JSR 310所有抛出的异常是DateTimeException,它是个RuntimeException,而Joda-Time都是checked exception

简单感受下JSR 310 API:

 

(编辑:潍坊站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!