- 博客(20)
- 收藏
- 关注
原创 关于AQS的灵魂追问
一线大厂的面试通常会就一个点进行追问深挖,将很多求职者追问到语尽词穷的地步。因此常常被诟病为面试造火箭,工作拧螺丝。这跟大厂的选人用人策略有很大关系,也是不同公司人才观的一种体现。今天就跟大家分享一道简单的面试题。前面的文章中我们已经介绍了关于syncronized的原理,相信看过的同学对锁的问题应该会有比较深刻的认识。今天就接着syncronzied的主题分享一道常见的面试题。面试官S:OK...
2020-05-04 21:15:30
196
原创 软件架构与管理——源自搬砖哲学
前言在前面关于ScalableIO的博客中我提到程序设计其实是一门管理科学,好的软件架构是在构建一个好的管理模型。有读者给我私信希望我就软件架构与管理这个话题展开聊一聊。这个需求真是不好接。因为在这个方面,之前我只是抓住了一些零散的感悟,并没有形成一个系统的思考。这个星期我也尝试着把这些零散的点串联起来,同时查阅了一些资料,总结了这样一篇博客。定义要探索两个事物之间的联系,我认为首先...
2020-04-25 22:09:40
291
原创 一起来分解一个Netty应用
前言前面几篇博客主要介绍到了NIO针对网络IO场景相比较传统的Socket通信的优势,以及NIO在应用过程中线程模型的演化。从这篇博客开始我们一起来学习一个基于NIO实现的框架Netty,这是一个目前应用非常广泛的通信框架。Netty所使用的线程模型就是我们上一篇博客提到的主从Reactor模型。那么为什么在JDK中已经集成了NIO之后,还需要一个二次封装的Netty。这是因为NIO的使用门...
2020-04-18 20:30:32
142
原创 由Scalable IO引发的思考
前言前面我们一起研究了NIO,了解了NIO对TCP通信过程做了哪些优化,以及这些优化的实现原理。今天我们一起来看一看在利用NIO进行应用开发时,线程模型的演化。让我们一起来学习一下Java并发包的作者Doug Lea的Scalable IO in Java。一起读一读NIO通过操作系统的epoll机制,帮助用户在通信条件就绪时能够获得相应的Event。帮助上层应用准确的调度线程启动计算...
2020-04-11 07:06:24
255
原创 聊一聊NIO到底优化了什么
前言线程是一个勤劳的worker,作为程序设计者需要为每个线程充分准备好运行条件,把握好创建时机,才能让线程时刻处于繁忙状态,充分压榨它的服务能力,从而高效地创造价值。在互联网时代,网络通信是所有应用的基础。我们常常用一个网络应用每秒钟能够响应多少请求(QPS)来衡量一个系统的并发能力。支撑这种并发能力的关键一环就是网络IO。说道网络IO,JAVA系的同学第一个想到的一定是NIO(New...
2020-04-03 22:36:36
382
原创 syncronized原理解析
多线程进行并发访问资源时需要进行锁同步,否则会出现两个线程之间的计算交叠造成逻辑错误。在java中常用的关键字syncronized就是用来进行加锁同步的。下面我们就来聊一聊syncronized的实现原理。有过C++开发经验的同学都知道,在C++中进行锁同步通常会使用mutex(互斥量)。互斥量是操作系统提供给我们的一种能力,通过他可以实现资源的抢占与访问隔离。调用伪代码如下:st...
2020-03-27 22:43:08
662
原创 近年互联网主要技术综述(DEV篇)
计算机软件技术的生命周期简单划分可以分为开发和运维两个阶段。开发阶段围绕业务模型对现实世界模拟,数据沉淀,计算分析,得出结论创造价值。运维阶段是为了维护好开发阶段创造的软件成果,帮助软件成果更平稳的服务好真实世界。运维阶段关注在任何时间,以任意资源,在任意机器上启动服务,并帮助客户及时发现服务,合理分配流量,监控服务的运行状态,平稳处置服务失败,升级等等。本文将分DEV和OPS两个阶段对今年来的主...
2020-01-16 17:47:22
593
原创 Tensorflow训练中Worker如何动态伸缩
Tensorflow对于大部分算法用户来说能够满足使用需求 。但是在日常使用过程中也发现有一些bug导致日常生产过程中的训练异常中断,影响使用 。尤其是在离线集群进行大规模训练时,集群网络负载大,机器环境恶劣,导致故障频发,影响用户体验。 因此对于Tensorflow的稳定性改造,在大规模生产中是一项必要工作。Worker 角色的 Failover 及动态扩缩容改造为了提升用户使用体验提升集群资...
2019-10-23 10:13:46
6052
原创 Tensorboard源码的小改动让你的模型性能调优如丝般顺滑
利用Tensorflow进行训练时,训练性能是用户经常 关心 的问题,训练速度慢 导致模型迭代慢工作效率低。尤其在一些在线训练场景会导致数据堆积,模型跟不上数据变化。解决性能问题的关键是快速定位到算法中的性能瓶颈 。在Tensorflow中提供了默认 的性能指标收集机制FULL_TRACE。 FULL_TRACE可以帮助用户查看训练全过程耗时指标。但是使用时需要用户在运...
2019-10-23 09:44:13
6073
原创 如何放大FeatureColumn的能力
FeatureColumn是Tensorflow 特征 工程的一类接口在文本类算法中应用广泛 。在文本类算法中特征工程的目的是将文本转化为向量即Embedding操作)。FeatureColumn中提供了丰富的基本转化操作用户可以通过组合不同的FeatureColumn来实现自己的 特征工程 。下面介绍几种常见的特征工程组合 。 FeatureColumn对于利用 Te...
2019-10-22 18:11:38
158
原创 如何理解Tensorflow的计算和数据模型抽象
Tensorflow采用的是一种编译执行的模式。即计算过程定义与计算执行分离的模式。用户通过框架提供的 API 构建算法描述(一般使用 python 进行开发)。框架将用户的算法定义编译成由计算逻辑节点( OP ),数据输入输出关联关系 Edge )和计算参数( Variable )组成的可序列化对象 Graph )。 在正式执行时,框架将 Graph 序列化成 ...
2019-10-22 18:03:48
227
原创 sqlalchemy入门
sqlalchemy入门最近在项目中用到了sqlalchemy,作为一名跳转到python开发中的新手,把sqlalchemy最近的一些使用心得记录下来。作为一名hibernate的移民很自然的想构建一个BaseDao。经过研究写出了一版简单的sqlalchemy版本的BaseDao。class BaseDao(object): def __init__(self, session, mod
2017-07-13 19:49:29
410
原创 springmvc hibernate事务管理read-only属性
在利用freemarker做网页静态化中遇到的一个小问题。程序的逻辑大致是,当用户提交网页静态化请求时,会从数据库读取新闻纪录,查看对应的html路径是否存在,如果存在就将html文件删除然后重新生成静态化文件,修改数据库对应的数据记录。但是在开发过程中发现,update语句无法提交,经过查阅资料发现是事务管理配置的read-only属性出了问题。因为get与update属于同一个事务。但是该
2016-04-11 22:59:02
2565
原创 java web开发中property文件java程序解析
java web开发中经常运用到property文件,比如可以将数据库相关的参数配置在property文件中,然后在spring, hibernate的配置文件中自动获取相应参数。有时候我们也希望将一些业务参数配置在property文件中,然后在编写相应的java程序时读取相应的配置参数。这边介绍两种获取配置文件参数的方法。我们这边是基于SpringMVC框架进行的配置文件解析实验。(
2016-04-08 22:53:46
1464
原创 SpringMVC中时间数据格式问题
SpringMVC中对于时间字段的处理经常会遇到格式问题,大体有两种情况,第一种是提交表单时时间格式错误,表单提交不上出。第二种是数据返回时,前台页面只能显示一个长整数。下面针对这两个问题分别给出相应的解决方法:1.提交表单问题。在后台实体类时间字段加入@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")注解,其中pattern字段的数据格式可以
2016-04-03 05:48:35
2817
转载 EL表达式
EL表达式 1、EL简介1)语法结构 ${expression}2)[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如: ${user.My-Name}应当改为${user["My-
2016-03-31 22:50:18
231
原创 SpringMVC中以is开头的字段名返回JSON问题
本来在开发中尽量不用以is开头的变量名的,但是因为开发中用到了zTree,节点字段中包含isParent字段。前台必须要用到该字段,所以无赖定义子节点类如下:public class ZTreeNode { private String id; private String pId; private String name; private boolean isParent;}其中的
2016-03-30 23:47:59
9818
原创 datatables服务器加载数据,多语言
/** * 初始化datatables */function initTable() { var table = $('#userTable'); table.dataTable({ "language" : { "lengthMenu": "每页 _MENU_ 条记录", "processing": "正在加载数据...", "i
2016-03-30 11:21:01
1325
1
转载 文件上传类型表单不能提交的问题
表单定义如下:刚开始时,工程没有文件上传相关的配置,导致表单无法正确提交。 该表单中如果enctype=application/x-www-form-urlencoded则运行正常;如果调成multipart/form-data后,提交表单时不管用户名写的是什么,转到的网页后面显示的用户名都是null。 解决方案:multipart/form-data这是上传文件使用的编码
2016-03-30 11:14:23
1175
原创 SpringMVC中hibernate中一对多关系,懒加载转JSON问题
Hibernate中的一对多关心,多类中对应字段设置懒加载,利用SpringMVC自带的自动JSON返回时出错。解决方法:利用jackson的@JsonIgnore忽略对应的字段即可。
2016-03-30 11:10:33
654
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人