005.聊聊线程与线程池

作为Java 搬砖人员,免不了要接触线程与线程池,今天就来聊聊线程与JDK里的线程池 进入今天内容前,我们先思考下这么个问题:线程池里的线程是如何维持生命,不被GC掉? what is thread thread的使用 thread的几种状态 JDK线程池的使用 线程池...

2016-08-21 15:43:36

阅读数 290

评论数 0

004.聊聊线程安全2

第二期里从线程安全的角度聊了聊系统设计 本期继续结合具体的技术点来聊聊线程安全惯例,先看栗子++i 或者 i++ 是否原子操作?这里先不进行分析,大家可以先想想 我们先来看看Java的内存模型Java能够实现跨平台,得益于Java虚拟机规范所定义的Java内存模型 这个模型屏蔽对硬件和操作系...

2016-01-20 16:16:10

阅读数 525

评论数 0

003.聊聊系统设计:有状态、无状态

上一期从线程安全的角度聊了聊系统设计要注意的事情,这次换个角度继续聊聊系统设计 这次主题围绕系统设计:有状态、无状态惯例,先看栗子网站登录校验,很普通的一个功能 对于这个功能我们要如何实现?先分析一下登录校验是个啥意思 举个栗子,比如我们在登陆页输入用户名密码,登录了社交网站 这时候想去看...

2016-01-04 17:13:41

阅读数 14566

评论数 4

002.聊聊线程安全

本期主题为系统线程安全方面 part1 先看一个案例 我们的一个线上服务,一个更新用户礼物领取状态接口的逻辑是这样的: 简化这个更新接口的参数为 userId,giftId 1.传入用户Id和领取的礼物Id 2.先读取放在redis的用户map数据,领取状态是这个map的其中一部分...

2015-12-28 17:00:10

阅读数 680

评论数 0

001.从合理使用工具开始

最近尝试在团队里发起一个技术探讨会 尝试推动大家每次选一个小的技术点,进行分享,然后落地成开发规范、code review List 开篇总要说下背景,所以免不了啰嗦几句 首先,代码是程序猿的脸面,怎么能不上心 不久前,看了篇知乎上的文章,顿时菊花一紧,心想,此时难不成在某个地方也有人在吐...

2015-12-21 19:26:15

阅读数 1042

评论数 0

论设计文档的重要性

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富...

2015-07-26 15:50:58

阅读数 422

评论数 0

【mysql】mysql学习笔记

1.库表设计 1.1表字段选择以满足需求为主 更小的更好,能用smallint 就没必要用int 简单的更好,简单的类型的代价也更低 避免NULL值,存在NULL值mysql在处理上会难优化 1.2表大小 单个表太大的话,可以考虑拆分表 1.3范式化与反范式化的混合 适当的构建冗余字段,对...

2015-06-10 17:19:03

阅读数 436

评论数 0

【thrift】 thrift原理浅析

【thrift】 thrift原理浅析 上文介绍了 thrift 入门例子 下面简单介绍 thrift 的基本原理 这里以 thrift server端为例子 1.创建socket /*              * thrift 封装的 socket 层,使用...

2014-07-06 14:28:14

阅读数 10385

评论数 1

【thrift】 thrift入门

【thrift】 thrift入门 thrift 是Facebook开源的跨语言的RPC通信框架,支持的语言比较多,如java、c++、Python等 thrift提供的跨语言的编译工具,可以基于thrift idl语言编译出所支持语言的源代码文件 利用thrift,可以方便的开发出服务间的R...

2014-07-06 14:25:11

阅读数 904

评论数 0

【resin】 resin3 线程池与IO模型(2)

【resin】 resin3 线程池与IO模型(2) 上篇文章主要介绍了resin3的线程池逻辑,下面具体分析下resin3的网络IO模型 resin3开源版使用的IO模型是BIO模型 相关的核心类是Port和TcpConnection 下面贴出源码:为说明核心逻辑...

2014-03-22 11:00:37

阅读数 2682

评论数 0

【resin】 resin3 线程池与IO模型(1)

【resin】 resin3 线程池与IO模型(1) 本文所讨论的线程池及IO是基于resin3.1.13开源版 resin3的线程池IO相关的类主要是3个: Port、TcpConnection、ThreadPool TcpConnection:处理tcp链接的t...

2014-03-22 10:58:29

阅读数 1996

评论数 0

【JVM】GC系列文章

GC系列文章 成为JavaGC专家Part I — 深入浅出Java垃圾回收机制 成为JavaGC专家Part II — 如何监控Java垃圾回收机制  成为Java GC专家系列(3) — 如何优化Java垃圾回收机制 成为Java GC专家(4) — Apache的MaxClients参数...

2013-10-24 10:39:52

阅读数 448

评论数 0

【java】java传值

// Java和C++的参数传值上存在共同的地方,也有不同的地方 // Java 只有传值 , 而C++ 则既有 传值 也有传 引用 // 因此 C++ 可以对地址值进行操作 // 来看个 Java 例子 public class MethodParameterTest { public s...

2013-03-16 13:18:32

阅读数 737

评论数 0

【rose】portal

rose的portal是一个非常不错的web服务端技术 传统的web服务器对一个request请求的处理是串行的 只有所有逻辑处理完后才返回数据给页面渲染 这样的好处固然简单,但是也有极为严重的缺陷 如果其中一段代码发生异常将可能造成请求处理中断,直接导致500错误 而rose的portal技...

2013-01-03 17:18:24

阅读数 812

评论数 0

【java】Integer == Integer?

/** *Q:Integer和Integer对象用 == 进行比较的过程是怎样的? * *看例子 */ public class Test { public static void main(String[] args) { int a = 1; int b = 1; I...

2012-12-15 12:19:31

阅读数 8629

评论数 5

【rose】rose初始化

【rose】rose初始化 rose封装了spring框架,集合spring IOC和AOP所构建的一个MVC框架 rose载体为RoseFilter 在web.xml配置文件,如filter进行配置即可,如下:  filter>    ...

2012-12-02 13:10:27

阅读数 1618

评论数 2

【Tomcat】学习笔记:tomcat容器基本实现原理

推荐大家阅读 how tomcat works,这本书对tomcat原理做了详细的讲解 index 一个servlet容器是一个复杂的系统,但是实现一个请求,servlet容器需要做最基本的三件事: 1.构建一个带有参数,请求头,cookie,url等信息的请求对象 这个对象可以是javax...

2012-10-21 13:46:21

阅读数 1597

评论数 1

【JVM】spring单例内存管理简单分析

【JVM】spring单例内存管理简单分析 问题描述: spring框架中controller类实例为单例 开发过程中,在controller中定义的成员变量是否添加 static 描述符,在内存管理上会有区别吗? 设计模式中单例的一个例子: public class...

2012-10-20 09:53:42

阅读数 2900

评论数 0

【JVM】java内存管理入门

【JVM】java内存管理入门 JVM管理的内存包括以下的运行时数据区域 程序计数器:作用是当前线程所执行的字节码的行号指示器 java虚拟机栈:线程私有,描述java方法执行的内存模型:每个方法被执行时会同时创建一个栈帧 该栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息 ...

2012-10-14 09:12:30

阅读数 829

评论数 0

【spring】spring MVC入门

【spring】spring MVC入门 spring mvc框架是一个web服务端开发框架 基于spring mvc框架进行开发,能够让我们脱离对底层代码实现的开发 让我们更加的专注于业务逻辑代码的开发,大大提高web服务开发的效率 spring mvc总体上分为三块: ...

2012-10-06 17:41:25

阅读数 358

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭