[闲聊] thread-safe

楼主: cowbaying (是在靠北喔)   2015-06-29 00:16:21
出来缓和一下气氛(被巴...
注意到最近的游戏开发工具
较有名如GMS、UNITY或是COCOS-2D
会发现基本上就是只支援单执行绪
其实我觉得没什么不好
毕竟在变量的共用上
如果发生同时存取或者该值应该存在而竟然不存在或者反过来的时候
Thread-Safe的观念就很重要
不过当然这几个工具都有支援multi-core的外挂或模组
在单纯使用Java开发Android游戏的情况中
还有synchronized这个关键字可以用
事实上这个关键字还是少用比较好
因为书上都这么说?
不是的
因为这在设计不良的架构里会严重拖累到效能
说到这里
整个游戏的逻辑设计就显得非常重要
当循环在循环的时候(跑一次循环暂时定义成一个cycle)
因为会考虑到效能问题
子物件有不同处理资料的cycle
但是这样就成了一个问题
哪个要先执行?(当cycle数到了公倍数的时候)
这点在GMS或UNITY这类工具上
就必须注意物件执行的顺序
不然纵使程式码写对
但程式还是会出错
虽然游戏开发工具很便利
但是该有的逻辑一样是不可少的
作者: azureblaze (AzureBlaze)   2015-06-29 00:26:00
MT开发除错很麻烦,所以这些非超专业的工具都会避免吧当然那种得搾出每一滴效能的就会进去打混战了
楼主: cowbaying (是在靠北喔)   2015-06-29 00:27:00
是阿 不过还是可以用简单的状态改变去做同步的记号
作者: hodsala (猴的沙拉)   2015-06-29 10:24:00
何谓支援? cocos2dx本身不就使用了多绪载图 只是可以选择不用
作者: LaPass (LaPass)   2015-06-29 10:53:00
我觉得MT比较好用,不过开架构时要有MT的知识,不然一定死
楼主: cowbaying (是在靠北喔)   2015-06-29 11:23:00
用MT跟在写parallel程式一样阿...
作者: littleshan (我要加入剑道社!)   2015-06-30 01:24:00
现在的主流程式语言在设计上就是不利MT的所以大家就会觉得写MT很麻烦,实际上是用错了工具就像没有cuda/opencl的时代虽然还是可以写gpgpu但是工具不对,怎么写都很麻烦又容易出错
楼主: cowbaying (是在靠北喔)   2015-06-30 09:24:00
有专门的工具? 哪一套分享一下
作者: dreamnook (亚龙)   2015-06-30 09:32:00
+1

Links booklink

Contact Us: admin [ a t ] ucptt.com