- 博客(9)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 线上问题总结------跨服状态改变问题
游戏中有各种跨服活动,在大部分战斗中没有出现问题,但是在擂台赛出现了选择。 刚开始查看觉得是客户端问题,其实确实是中心服服务器的问题。 消息发到中心服后,在中心服改变了武将的状态,但是在发送回游戏服时,出现了characters为空,直接返回。 if ( this.getType() != BattleType.BATTLE_TYPE_SUPREME ) { if (characters.isEmpty()) { return; } } ...
2020-06-30 18:19:06 128
原创 BIO、NIO、AIO
BIO-会产生阻塞 NIO-非阻塞 单线程模型-轮询模式--相当于selector负责client的连接并负责client的读写 package com.xmg.nio; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import...
2020-06-25 08:44:44 101
原创 java如何停止一个正在运行的线程
停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。在java中有以下3种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume一样都是过期作废的方法。 使用interrupt方法中断线程。 1. 停
2020-06-23 10:48:50 1445
原创 Mysql 聚集索引和非聚集索引区别
1)聚集索引和非聚集索引区别------------聚簇索引和非聚簇索引区别 1.在InnoDb中主键索引即为聚集索引,数据存储在B+树的叶子节点,索引和数据放在一起 2.非聚集索引:指的是非主键索引,非主键索引叶子节点数据存储的是主键索引的ID,真实数据没有和索引放一起 2)为什么非主键索引存储的是主键索引非真实数据 为了数据的一致性,对一个索引数据进行修改将会导致其他索引也修改,需要改很多地方,开销大。 占用磁盘空间。 通过时间换空间 ...
2020-06-18 22:44:39 924
原创 FutureTask源码分析-重点方法
FutureTask源码分析1.FutureTask的7中状态转换2.重点方法分析1.get()2.run()3 cancel()3 举例代码 1.FutureTask的7中状态转换 2.重点方法分析 1.get() /** * @throws CancellationException {@inheritDoc} */ public V get() throws InterruptedException, ExecutionException { int s = state; /
2020-06-14 19:54:05 169
原创 package io.netty.handler.codec.ReplayingDecoder
package xmg.quest.netty.core; /** * @author 作者 : xuminggang * @version 创建时间:2020年6月8日 上午10:05:15 * */ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; .
2020-06-09 10:13:47 678
原创 AtomicIntegerFieldUpdater要点总结
1.更新器更新的必须是int类型变量,不能是其包装类型。 2.更新器更新的必须是volatile类型的,确保线程之间共享变量时的立即可见性。 3.变量不能是static的,必须是实例变量。因为Unsafe.objectFieldOffset()方法不支持静态变量(CAS操作本质上是通过对象实例的偏移量来直接进行赋值)。 4.更新器只能修改它可见范围的变量,因为更新器是通过反射来得到这个变量,如果变量不可见就会报错。 如果要更新的是包装类型,那么可以使用AtomicReferenceFieldU.
2020-06-03 14:36:11 207
原创 package io.netty.util.ReferenceCounted
package xmg.quest.netty.core; /** * 一个引用计数对象需要显式的回收 * <p> * 当一个新的{@link ReferenceCounted} 被创建好,这个对象的引用计数就是{@code 1}。 * 调用{@link #retain()}方法会增加这个引用计数,调用 {@link #release()}会减少这个引用计数。 * 当引用计数减少到 {@code 0},这个对象会被显式的回收,如果去访问一个已经被回收掉的对象通常会导.
2020-06-02 18:23:55 256
eclipse插件在线下载源码.rar
2019-07-16
求大神解决TryUpdateModel如何在java中使用
2016-09-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人