最近在用Apple的Swift开发一点东西,发现OS X SDK 有个bug是关于数据同步的。
我想在键盘事件更改速度属性发现怎么改都改不对,后来一查(花了两天)发现处理键盘事件的线程和渲染器的线程的速度值完全不一样。。
他内置的游戏引擎把一个velocity的值多线程同步坏掉了(用寄存器过度优化了,在c里面我们一般用volatile解决),bug我已经报给了Apple但是这个bug引起了我一些问题。
类脚本语言在遇到这种问题的时候应该怎么解决比较好,因为我能想到的有三种办法:
一是重做底层的线程同步,但是平衡访存压力和过度优化,这个 好像难度很大吧
二是添加volatile关键词,但这样似乎破坏了语言的优美性。。
三是补衣服一样的暴力优化。。。。。似乎很蛋疼