值得关注的5大数据中心技术趋势
|
雷锋网注意到,对于这支大火的机器人舞蹈,IEEE(美国电气电子工程师学会)旗舰出版物 IEEE Spectrum 表示:
IEEE Spectrum 认为,严格来讲,这样的视频并不算是开创性的,因为观众们没有看到机器人的任何新能力,但其「艺术成分」仍然令人印象深刻。虽然波士顿动力的 双足机器人 Atlas 可以做一些实际的任务,体操、跑酷等技能也样样精通,但无疑,让机器人跳舞还是有难度的。 为此,在具体如何跳舞方面,波士顿动力请了一位名为 Monica Thomas 的外援做舞蹈指导。
雷锋网(公众号:雷锋网)了解到,出于对性别、文化、幽默、后现代主义、运动和霸权等方面的共同兴趣,Monica Thomas 在她读大四时(2014 年)和两位朋友共同创立了一个 Mad King Thomas 舞蹈工作室,主要关注自由创作,已在世界各地创作了大大小小的舞台作品。
5.3 自旋锁 1、为什么会有自旋锁? 前面聊 monitor 实现锁的时候,知道 monitor 会阻塞和唤醒线程,线程的阻塞和唤醒需要 CPU 从用户态转为核心态,频繁的阻塞和唤醒对 CPU 来说是一件负担很重的工作,这些操作给系统的并发性能带来了很大的压力。 同时,虚拟机的开发团队也注意到在许多应用上,共享数据的锁定状态只会持续很短的一段时间,为了这段时间阻塞和唤醒线程并不值得。 如果物理机器有一个以上的处理器,能让两个或以上的线程同时并行执行,我们就可以让后面请求锁的那个线程“稍等一下”,但不放弃处理器的执行时间,看看持有锁的线程是否很快就会释放锁。为了让线程等待,我们只需让线程执行一个循环(自旋) , 这就是所谓的自旋锁。 2、自旋锁的优缺点 自旋等待不能代替阻塞,且先不说对处理器数量的要求,自旋等待本身虽然避免了线程切换的开销,但它是要占用处理器时间的。 如果锁被占用的时间很短,自旋等待的效果就会非常好,反之,如果锁被占用的时间很长。那么自旋的线程只会白白消耗处理器资源,而不会做任何有用的工作,反而会带来性能上的浪费。 所以,自旋等待的时间必须要有一定的限度,如果在多线程交替执行同步块的情况下,可以避免重量级锁引起的性能消耗。 自旋超过了限定的次数仍然没有成功获得锁,就应当使用传统的方式去挂起线程了。自旋次数的默认值是10次,你可以使用参数 -XX : PreBlockSpin 来更改。 5.4 适应性自旋锁 在JDK 6中引入了自适应的自旋锁。自适应意味着自旋的时间不再固定了,而是由前一次在同一锁上的自选时间及锁的拥有者的状态来决定。 如果在同一个对象锁上,自旋等待刚刚成功获得过锁,并且持有锁的线程正在运行中,那虚拟机就会认为这次自旋也很有可能再次成功,进而它将允许自旋等待持续相对更长的时间,比如100次循环。 如果,对于某个锁,自旋很少成功获得过,那在以后要获取这个锁时可能会省略掉自旋过程,避免浪费服务器处理资源。 有了自适应自旋锁,虚拟机对程序的状况预测就会变得准确,性能也会有所提升。 总结
还总结啥?说的都这么明白啦! (编辑:南昌站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
