Wesley13 Wesley13
3年前
java并发相关(四)——关于synchronized的可重入性,线程切换实现原理与是否公平锁
一、可重入性  关于synchronized的可重入性的证明,我们可以通过A类内写两个同步方法syncA(),syncB()。然后syncA内调用syncB,调用syncA发现代码可正常执行,来证明这一点。  当处于无锁阶段时,划掉,都重入了不可能处于无锁。  当处于偏向锁阶段时,由之前对偏向锁的解释可知,偏向当前线程id是,当前线程可直
Wesley13 Wesley13
3年前
android应用架构经验及代码规范
应用的更新从服务器拿数据后要处理得到数据为空、解析错误、解析为空的情况,防止后台坏掉后进不去activity;用友盟等平台更新不能阻塞式强制更新,万一友盟维护了,应用就进不去了。命名规则布局中id的命名:尽量保证不同布局xml文件中不要有相同的id命名,不然ctrl想点进去的时候,不知道该跳转到哪个文件,当注释掉该控件后
摸鱼飞弹 摸鱼飞弹
4年前
Redis性能优化
本文开始会讲解一下redis的基本优化,然后会举一些优化示例代码或实例。最后讲解一下,默认启动redis时,所报的一些警示错误。一、优化的一些建议1、尽量使用短的key当然在精简的同时,不要为了key的“见名知意”。对于value有些也可精简,比如性别使用0、1。2、避免使用keys keys,这个命令是阻塞的,即操作执行期间
Stella981 Stella981
3年前
Netty系列之Netty高性能之道
1\.背景1.1.惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用Netty4Thrift压缩二进制编解码技术,他们实现了10WTPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化BIO(同步阻塞IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不感到惊讶,根据我5年
Stella981 Stella981
3年前
PHP 使用 Swoole
<p在一般的Server程序中都会有一些耗时的任务,比如:发送邮件、聊天服务器发送广播等。如果我们采用同步阻塞的防水去执行这些任务,那么这肯定会非常的慢。</p<pSwoole的TaskWorker进程池可以用来执行一些异步的任务,而且不会影响接下来的任务,很适合处理以上场景。</p<p那么什么是异步任务呢?</p<p可以从下面
Stella981 Stella981
3年前
Ajax轮询,Ajax长轮询和websocket简单介绍
1、ajax轮询ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。客户端:你好在吗?客户端:你好在吗?客户端:你好在吗?服务端:在的2、longpoll(长轮询)其实原理跟ajax轮询差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直在呼叫,等不到你,我愿孤独终老,很执着),也就是说
Stella981 Stella981
3年前
Scala之美
1\.介绍      Scala语言拥有很强的表达能力,语法简洁,很接近人类的思考方式。利用map、flatMap方法做数据转换时,层层递进的演算方式,很像是在画流程图,中间没有停顿,思绪很流畅,不会被无关的变量声明、初始化等琐事打断。Scala中的Future可以让你非常灵活的使用线程,而不需要关注底层的线程管理问题,Scala已经为你处
Stella981 Stella981
3年前
Noark入门之协议映射
0x00消息控制器消息控制器,主要作用就是为每个模块提供消息处理的入口.这里的消息不仅仅是协议,还有内部指令,事件等等逻辑入口,这也是为了响应线程模型作出的一种支撑,只要入口在此消息控制器内,那必然走期望的线程调度。@Controller用于标识一个类为当前模块的消息控制器入口.@Controller(threadGroup
SpringBoot2.0笔记四
当搞全局捕获异常时可以使用到AOP技术,采用异常通知,也可以用AOP搞日志记录在类上面加上@EnableAsyns注解开启异步调用@Asyns,在方法上加上此注解,可以实现异步调用,底层是多线程技术,相当于加上这个注解的方法重新开启了一个单独的线程正常情况下,当A方法调用B方法时,是需要B方法执行完成,有返回结果时等待返回。这是顺序的方式从上到下执行程序,当使用@Asyns注解时,A方法调用B方法,不用等待B方法执行完成,可以直接向下执行,B方法单独开启一个线程,两个方法同时运行。@Va
Wesley13 Wesley13
3年前
NIO入门之传统的BIO编程
网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务器监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。在基于传统同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听