
android
沙漠蜥蜴
不断学习,不断实践,才是永恒。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java CompletionService 理解
CompletionService是一个抽象的java泛型接口,它被ExecutorCompletionService泛型类实现,具体功能是将生产的任务和生产任务产生的结果分离。生产者通过submit提交任务,消费生产结构通过take获取任务放回的结果,然后做其他的处理。CompletionService 一般用于需要异步操作的地方,比如网络请求,文件io等耗时的操作中。ExecutorCompl原创 2015-10-15 15:56:21 · 436 阅读 · 1 评论 -
Android 史上最强工具详细
https://www.jianshu.com/p/ec5a1a30694b Android 屏幕适配:最全面的解决方案https://www.jianshu.com/p/4e8e4fd13cf7 Android开发:ListView、AdapterView、RecyclerView全面解析https://www.jianshu.com/p/b61a49e0279f 手把手带你全面了解An...转载 2019-01-04 14:12:52 · 216 阅读 · 0 评论 -
Netty解决分包的几种解码器介绍
一:LineBaseFrameDecoder 换行符解码器 改解码器的原理是,以此遍历缓存数组里的字节,判断字节是否为“\n”或者“\r\n”,如果读到了,就任务是数据包的结束位置,这样从遍历的start position到end position 这个闭区间就可以截取出一个完整的业务数据包。这种方式的缺点可以在数据的其他位置中包含这两个字符,导致截取数据错误,那么为了保障数据的正确性,一原创 2016-12-15 15:47:13 · 4243 阅读 · 0 评论 -
Socket TCP/IP协议数据传输过程中的粘包和分包问题
1.通过图解法来描述一下分包和粘包,这样客户更清晰直观的了解: 下面对上面的图进行解释: 1.正常情况:如果Socket Client 发送的数据包,在Socket Server端也是一个一个完整接收的,那个就不会出现粘包和分包情况,数据正常读取。 2.粘包情况:Socket Client发送的数据包,在客户端发送和服务器接收的情况下都有可能发送,因为客户端发送的数据都是发送的一个缓冲bu原创 2016-12-14 15:39:35 · 16652 阅读 · 1 评论 -
java socket & Nio 之 利用线程池改进
前面描述了BIO中采用1对1模式的服务器架构,发展它不适合高并发,高性能的服务器业务需求,那么接下来我们采用一个改进版来改进一下这个结构,这个结构主要是改进服务器端的程序。改进的措施如下: 1.在服务器接收到客户端的每个连接后,把客户端的socket包装成成功一个Task。 2.在服务器端根据系统的资源建一个固定大小的线程池和Task队列,然后线程池去管理处理线程的执行。 经过上面的处理,我们原创 2016-12-12 17:06:27 · 3845 阅读 · 1 评论 -
Java Socket & Java NIO 编程解析
服务器BIO通讯模型: 采用BIO通信模型的服务器端,通常是有一个专门负责监听客户端键入的的一个线程,一般叫它为Acceptor 线程。当Acceptor 线程接收到客户端的连接请求后,它就为每个客户端创建一个新的线程来进行链路处理,处理完后,通过输出流返回给客户端,然后线程就销魂掉了,一般我们称这种模型为One Request VS One Response. 一般的结构图如下:原创 2016-12-12 13:25:25 · 558 阅读 · 0 评论 -
实例深入理解Java wait/notify执行机制
Java wait/notify wait 使得获取到同步锁的线程在调用wait方法的时候暂停执行,让出cpu的时间片 notify 通知获取同步锁的线程在获取到cpu的时间片后继续执行 代码案例分析: public class MyClass {public static void main(String[] args) { //同步对象 Object lo原创 2016-07-21 13:30:42 · 562 阅读 · 0 评论 -
Java wait(long arg)方法的使用
wait(long arg)方法的功能是等待一段时间,在这段时间内是否有线程对持有的锁对象进行唤醒,如果超过了这段时间,该锁就自动唤醒。class MyRunnable implements Runnable { private Object lock; public MyRunnable (Object lock){ this.lock = lock;原创 2016-07-22 20:33:34 · 1148 阅读 · 0 评论 -
实例分析Java notifyAll方式的使用
java notifyAll()方法唤醒所有处于阻塞状态的线程继续执行阻塞后的代码逻辑。 /** * 当方法wait()被执行后,锁被自动释放,但是执行完notify()方式,锁却不自动释放 **/ class ServiceWait { public void testMethod(Object lock) { try {原创 2016-07-22 19:50:46 · 392 阅读 · 0 评论 -
自定义View系列文章
https://www.jianshu.com/p/146e5cec4863 自定义View基础 - 最易懂的自定义View原理系列(1)https://www.jianshu.com/p/1dab927b2f36 自定义View Measure过程 - 最易懂的自定义View原理系列(2)https://www.jianshu.com/p/158736a2549d 自定义View ...转载 2019-01-04 14:17:59 · 223 阅读 · 1 评论