Java游戏服务器4

1)消息识别器:
    根据消息号,创建一个Builder。

2)javassist:动态修改字节码。==》用于ormtest
    原生反射很慢,那我可以用javaassist来加速

    
3)一些框架没有实现类,是怎么实现出来的。

4)多线程与IO

5)先讲解移动。
    攻击的话,就是涉及到多线程的问题。

6)A和B同时攻击C时,A和B 分别在自己的线程,因此有并发访问安全的问题。


7)多个线程操作同一份数据,数据不一致的问题。解决方案
    (1)加锁 synchronized:
            一个减血的函数暂时没有问题: 

            执行效率不高甚至都不是关键的。

            但是如果有别的函数呢? attkUser(User user); 这种带来了死锁。 互砍造成了死锁!!!
                jps  ==》 得到进程及其对应的pid,,如自己Server的pid。
                jstack 7996  ==》得到死锁信息。

                数据不一致,和死锁。

                减少锁的粒度,可以减少死锁(并非避免死锁)。 但是开发困难,与业务逻辑重合了。

    (2)脏读:多线程操作同一份数据,脏读。
                volatile也不行。它只保证2个线程是可见的。 不能是原子的。

    
    (3)atomic:
         单个操作,能保证线程安全,用cas原语保证,但是十分臃肿! 道具的id,任务的状态。。。对象太大,太臃肿的。
             但是,同时操作a和b,则依然是数据不一致的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值