suifeng3051 + 关注

关于网络IO中的同步、异步、阻塞、非阻塞

发布时间:2016-10-10 17:57:00 浏览:2256 评论 :0

在高并发编程当中,我们经常会遇到一些异步、非阻塞等一些概念,一些常用的技术比如异步的httpclient、netty nio、nginx、node.js等,它们的原理大都跟异步、非阻塞有关。特别是在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人员可以提高资源的利用率,性能也会改善。其nginx和node.js处理并

函数 线程 高并发 操作系统 同步 kernel read Socket

数据库索引原理及优化

发布时间:2016-09-26 14:30:00 浏览:3594 评论 :0

本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接。 一、摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是

算法 mysql innodb 数据库 索引 磁盘 数据结构 存储 key myisam

全面理解Java内存模型

发布时间:2016-09-21 18:39:00 浏览:2210 评论 :0

Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。原始的Java内存模型

架构 java 线程 内存模型 多线程 CPU 存储

volatile和synchronized的区别

发布时间:2016-09-21 18:16:00 浏览:1188 评论 :0

volatile和synchronized特点 首先需要理解线程安全的两个方面:执行控制和内存可见。 执行控制的目的是控制代码执行(顺序)及是否可以并发执行。 内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。 synchronized关

java 线程 内存模型 数据类型

如何设计一个秒杀系统

发布时间:2016-09-21 14:23:00 浏览:4531 评论 :1

什么是秒杀 秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。 秒杀系统场景特点 秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。 秒杀一般是访问请求数量

redis 架构 消息队列 数据库 高并发 消息中间件 电商 数据结构

什么是线程安全

发布时间:2016-08-09 17:20:00 浏览:1613 评论 :0

线程安全是多线程领域的问题,线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中使用而不会出现问题。 产生线程不安全的原因 在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。如,同一内存区(变量,数组,或对象)、系统(数据库,web services等)或文件。实际上,这些问题只有在一或多个线程向这些资源做了写操作时才有可能发生,只要

安全 线程 数据库 new ADD 多线程 void

Java 异常设计最佳实践

发布时间:2016-08-05 10:49:00 浏览:2352 评论 :0

关于异常 在讲Java异常实践之前,先理解一下什么是异常。到底什么才算是异常呢?其实异常可以看做在我们编程过程中遇到的一些意外情况,当出现这些意外情况时我们无法继续进程正常的逻辑处理,此时我们就可以抛出一个异常。 广义的讲,抛出异常分三种不同的情况: 编程错误导致的异常 :在这个类别里,异常的出现是由于代码的错误(譬如NullPointerException、Ille

java 面向对象 exception 编程

Integer.parseInt("") Integer.valueOf("")和new Integer("")之间的区别

发布时间:2016-08-03 10:47:00 浏览:1436 评论 :0

把一个String转换成int有Integer.parseInt("")、 Integer.valueOf("")和new Integer("")这么几种方式,它们之间有什么区别呢?我们可以分别看一下它们的源码 //Integer.parseInt("") public static int parseInt(String s) throws NumberFormatExc

函数 源码 Cache new string static

RESTEasy中的通用异常处理ExceptionMapper

发布时间:2016-08-02 14:45:00 浏览:2079 评论 :0

RESTEasy是JBoss提供的一个Restful基础框架,使用它我们可以很方便的构建我们的Restful服务,而且它也完全符合Java的JAX-RS2.0标准,很多第三方Restful框架也都是基于RESTEasy开发的。 在任何框架中都不可避免的涉及到异常处理,Restful框架也是如此。按照我们一般传统异常处理方式,在Restful的最外层,我们一般会对所有的业务调

path get entity exception Core class REST

使用Charles进行移动APP抓包分析

发布时间:2016-08-01 17:19:00 浏览:1825 评论 :0

一、简介 Charles是目前最强大最流行的http抓包调试工具,Mac、Unix、Windows各个平台都支持。特别是做APP开发,调试与服务端的通信,Charles是必备工具。 目前Charles是收费的,不过可以破解。 Charles下载地址:http://share.weiyun.com/6bbfc169f56589052957eae710a8612a 破解

监控 服务器 域名 http 配置 应用服务器 charles

线程之间的通信(thread signal)

发布时间:2016-07-08 17:57:00 浏览:1286 评论 :0

线程通信的目的是为了能够让线程之间相互发送信号。另外,线程通信还能够使得线程等待其它线程的信号,比如,线程B可以等待线程A的信号,这个信号可以是线程A已经处理完成的信号。 通过共享对象通信 有一个简单的实现线程之间通信的方式,就是在共享对象的变量中设置信号值。比如线程A在一个同步块中设置一个成员变量hasDataToProcess值为true,而线程B同样在一个同步块

监控 线程 new 同步 class void thread

java thread中的wait()和notify()

发布时间:2016-07-07 16:46:00 浏览:991 评论 :0

关于线程的状态 java thread有五种状态类型 新建状态(New):新创建了一个线程对象。 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。 阻塞状态(Blocked):塞状态是线程因为

java 线程 new string static Consumer class void thread

MySQL数据类型及字段属性

发布时间:2016-07-06 18:11:00 浏览:1546 评论 :0

MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类: 数值 日期/时间 字符串(字符) 数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE

mysql 数据库 索引 空格 字符集 varchar 存储 数据类型

Java Lambda 表达式介绍

发布时间:2016-07-04 16:09:00 浏览:1399 评论 :0

Lambda 表达式是 Java SE8 推出的新功能,也是Java第一次引入函数式编程的尝试。 Lambda表达式格式 Lambda 表达式可以看做是一种匿名函数,但是它没有访问修饰符、返回值和名字。Lambda表达式由两部分构成,形式参数和方法体,中间用“->”符号分隔。其中的形式参数类型能够进行自动推断,可以不写。当然在某些特殊情况下,形参类型也是不可缺少的。

java 函数 new string static 表达式 class void list arraylist input

Java 注解详解 (annotation)

发布时间:2016-07-01 14:55:00 浏览:1657 评论 :0

什么是java注解 注解是java5的新特性。注解可以看做一种注释或者元数据(MetaData),可以把它插入到我们的java代码中,用来描述我们的java类,从而影响java类的行为。 Java注解的目的 使用Java注解一般来说主要有三种目的 构建时指示: RetentionPolicy.SOURCE 编译期指示: RetentionPolicy.CLASS

java string Annotation class 数据类型

java 内部类(inner class)详解

发布时间:2016-06-30 17:30:00 浏览:1159 评论 :0

一、为何使用内部类 内部类提供了更好的封装,只有外部类能访问内部类 内部类可以独立继承一个接口,不受外部类是否继承接口影响 内部类中的属性和方法即使是外部类也不能直接访问,相反内部类可以直接访问外部类的属性和方法,即使private 利于回调函数的编写 一个内部类的例子: public class OuterClass { private String o

java new string static class void

Java RMI 介绍

发布时间:2016-06-24 10:36:00 浏览:1625 评论 :0

一、Java RMI 概览 Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。所以,RMI相关对象必须运行在Java虚拟机中。 在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对

java 服务器 Server string Registry

解决slf4j 冲突

发布时间:2016-06-24 10:09:00 浏览:1483 评论 :0

可能出现的异常: 发现配置的logback.xml文件没有起作用,于是分析了一下启动log,发现log中出现了SLF4J冲突异常: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder” 原因分

LOG 配置 alibaba zookeeper

Spring整合JMS(消息中间件)实例

发布时间:2016-06-20 16:16:00 浏览:1610 评论 :0

本篇文章主要描述了如何配置Spring-JMS,至于为何这样配置及Spring-JMS相关介绍,请阅读这篇文章:Spring整合JMS(消息中间件)。我们这里的消息broker用的是ActiveMQ。 一、相关配置 本篇主要讲解如何在Spring中配置JMS,关于Spring本身的配置本文就不多做介绍了。 1.1 配置maven依赖 在使用Spring-JMS之前,先

Apache http spring 配置 消息中间件 logger 测试 class schema bean JMS ActiveMQ

Spring整合JMS(消息中间件)

发布时间:2016-06-20 10:18:00 浏览:1721 评论 :0

本篇主要介绍了异步消息机制及Spring对JMS封装,本篇文章讲解较为详细,如果想直接看如何配置,可以参考: Spring整合JMS(消息中间件)实例,但还是建议大家先看完本篇文章。 一、消息异步处理 类似于RMI、Hessian、Burlap等远程方法调用,它们都是同步的,所谓同步调用就是客户端必须等待操作完成,如果远程服务没有返回任何响应,客户端会一直等待直到服务完成

消息系统 spring 配置 消息中间件 同步 class schema bean session JMS ActiveMQ

6