自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

染指泪的专栏

人无远虑 - 必有近忧

  • 博客(161)
  • 资源 (1)
  • 收藏
  • 关注

转载 并发工具类(二)同步屏障CyclicBarrier

简介CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。CyclicBarrier默认的构造方法是CyclicBarrier(int parties),其参数表示屏障拦截的线程数量,每个线程调用await方法告

2017-09-14 02:55:07 329

转载 并发工具类(一)等待多线程完成的CountDownLatch

简介CountDownLatch 允许一个或多个线程等待其他线程完成操作。应用场景假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。在这个需求中,要实现主线程等待所有线程完成sheet的解析操作,最简单的做法是使用join。代码如下:

2017-09-14 02:52:04 341

转载 深入剖析ConcurrentHashMap(2)

经过之前的铺垫,现在可以进入正题了。我们关注的操作有:get,put,remove 这3个操作。对于哈希表,Java中采用链表的方式来解决hash冲突的。一个HashMap的数据结构看起来类似下图:实现了同步的HashTable也是这样的结构,它的同步使用锁来保证的,并且所有同步操作使用的是同一个锁对象。这样若有n个线程同时在get时,这n个线程要串行的等待来获取锁。

2017-09-14 02:46:02 311

转载 深入剖析ConcurrentHashMap(1)

原文是09年时写的,在公司的邮件列表发过,同事一粟 和清英 创建的并发编程网 对这方面概念和实战有更好的文章,贴出来仅供参考。pdf格式在:http://www.slideshare.net/hongjiang/concurrent-hashmap 可以获取ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于Concurre

2017-09-14 02:44:57 321

转载 面试常问问题:银行网上支付项目中怎么控制多线程高并发访问?

面试常问问题:银行网上支付项目中怎么控制多线程高并发访问? synchronized关键字主要解决多线程共享数据同步问题。ThreadLocal使用场合主要解决多线程中数据因并发产生不一致问题。ThreadLocal和Synchonized都用于解决多线程并发访问。但是ThreadLocal与synchronized有本质的区别:    synchronized是利用锁的机制,

2017-09-14 02:25:17 753

转载 Java高并发,如何解决,什么方式解决

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步   1、同步和异步的区别和联系   所谓同步,可以理解为在执行完一个函数或方

2017-09-14 02:23:03 300

转载 Java IO:BIO和NIO区别及各自应用场景

转载请注明出处:jiq•钦's technical Blog - 季义钦引言BIO和NIO是两种不同的网络通信模型,现如今NIO已经大量应用在Jetty、ZooKeeper、Netty等开源框架中。一个面向流、一个面向缓冲区一个是阻塞式的、一个非阻塞一个没有io多路复用器、一个有下面通过一个例子解释两者区别:假设当前服务端

2017-09-14 01:58:32 502

转载 Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢!    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解。    下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端。    代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就

2017-09-14 01:56:34 251

转载 异步并行批处理框架设计的一些思考

随着互联网信息技术日新月异的发展,一个海量数据爆炸的时代已经到来。如何有效地处理、分析这些海量的数据资源,成为各大技术厂商争在激烈的竞争中脱颖而出的一个利器。可以说,如果不能很好的快速处理分析这些海量的数据资源,将很快被市场无情地所淘汰。当然,处理分析这些海量数据目前可以借鉴的方案有很多:首先,在分布式计算方面有Hadoop里面的MapReduce并行计算框架,它主要针对的是离线的数据挖掘分析。此

2017-09-14 01:54:57 642

转载 使用Lock,wait/notify,Semaphore三种方式实现多线程通信

java的多线程通信有Lock,wait/notify,Semaphore三种方式,以一道常见面试题来简单演示这三种多线程通信方式。两个线程循环间隔打印指定内容,一个打印从1到52的数字,一个打印从A到Z的字母,打印输出如下:12A34B......5152Z使用Lock实现代码如下:[java] 

2017-09-14 01:05:59 336

转载 “RPC好,还是RESTful好?”

REST 和 RESTful 什么区别?REST,即Representational State Transfer的缩写。翻译过来是表现层状态转换。如果一个架构符合REST原则,就称它为RESTful架构。啥叫json-rpc?接口调用通常包含两个部分,序列化和通信协议。常见的序列化协议包括json、xml、hession、protobuf、thrift、text、bytes等

2017-09-13 01:29:49 4126

转载 RESTful API 设计最佳实践

摘要:目前互联网上充斥着大量的关于RESTful API(为了方便,以后API和RESTful API 一个意思)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?API格式如何?你的API是否应该加入版本信息?背景目前互联网上充斥着大量的关于RESTful API(为了方便,以后API和RESTful API 一个意思)如何设计的文章,然而却没有一个”万能“的设计标

2017-09-13 00:23:18 349

转载 子类重写父类方法后的调用规则

例题:(单选题) 下面代码的输出是什么?public class Base {            private String baseName= "base";      public Base(){          callName();      }            public void cal

2017-09-11 02:19:36 5354 1

转载 Java transient关键字使用小记

哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1. transient的作用及使用方法      我们都知道一个对象只要实现了Serilizable接口,这个对象就可以

2017-09-11 01:15:14 301

转载 Java对象锁和类锁全面解析(多线程synchronized关键字)

原文出处: 小宝鸽最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念。最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没用对都不知道。今天把一些疑惑都解开了,写篇文章分享给大家,文章还算比较全面。当然可能有小宝鸽理解得不够深入透彻的地方,如果说得不正确还望指出。看之前有必要跟某

2017-09-10 00:23:32 1132

转载 Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable

最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札(一) 构建简单Web应用 Spring 注解学习手札(二) 控制层梳理 Spring 注解学习手札(三) 表单页面处理 Spring 注解学习手札(四) 持久层浅析 Spri

2017-09-09 17:06:22 231

转载 Java多线程学习(超详细总结)

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka       目录(?)[-]一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区别四线程状态转换五线程调度六常用函数说明使用方式为什么要用join方法七常见线程

2017-09-08 22:43:00 665

转载 Java中Volatile关键字详解

阅读目录一、基本概念二、Volatile原理一、基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机

2017-09-06 23:56:53 208

转载 java 总结几种线程异步转同步的方法

在做一款app的时候,用到了一个异步执行的api,而我想要的是同步执行,查了一些资料,对几种情况下的线程同步做一下总结。一、共享资源的同步问题:当一个资源被多个线程访问会发生错误,只能允许一个线程访问时。1.syschronized实现使用syschonized关键字可对某个块或者方法进行限制访问,即当一个线程获得块或者方法的访问权后,其他线程将不能访问

2017-09-06 23:55:50 6581

转载 系统吞吐量(TPS)、用户并发量、性能测试概念和公式

一.系统吞度量要素:  一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间        QPS(TPS):每秒钟request/事务 数量        并发数: 

2017-09-06 23:53:59 345

转载 面向服务与微服务架构

背景最近阅读了 Martin Fowler 和 James Lewis 合著的一篇文章 Microservices, 文中主要描述和探讨了最近流行起来的一种服务架构模式——微服务,和我最近几年工作的实践比较相关感觉深受启发。本文吸收了部分原文观点,结合自身实践经验来探讨下服务架构模式的演化。面向服务架构(SOA)面向服务架构 SOA 思想概念的提出已不是什么新鲜事,大概在10年

2017-09-01 01:42:24 711

转载 基于redis分布式缓存实现

在网上找了些redis搭建集群的资料,分享给大家,可以仔细看看,了解redis主从复制的逻辑,以及如何构建redis集群。Redis复制流程概述Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了redis的复制功能,就一定会有内存快照发生,那么首先要注意你的系统内存容量规划,原因可以参考我上一篇文

2017-08-31 22:53:38 382

转载 Java处理高并发量访问的处理总结

结合之前做的一个网站,项目中分了几个子项目,主要用到Redis,service(server)层和control层分离,有做了缓存,页面也是进行静态化(htm和freemarker),仔细想想,整个项目基本吻合高并发,负载均衡的处理。在网上找了些资料,基本和项目的特点吻合,特别纪念一下,但是后面的一些特征似乎还没理解。大概就是这几方面吧一个小型的网站,可以使用最简单的html静态页

2017-08-29 23:49:11 42376 2

转载 Dubbo+Zookeeper+Spring mvc+Nginx 集群负载均衡 详细demo

[-]第三步创建提供者第四步创建消费者这里创建2个Spring mvc web项目来充当消费的角色2个消费者dubbo-consumer01dubbo-consumer02也一样基本一样就是服务实现不一样来测试负载均衡还有个消费者配置文件不一样第五步到这里我们的dubbozookeeperSpring mvc 搭建完成了下一步加入nginx 实现http层面的负载均衡

2017-08-29 01:11:52 2886

转载 分布式锁原理及实现方式

本文转自:http://www.hollischuang.com/archives/1716           目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance

2017-07-24 23:44:58 469

转载 分布式锁的基本原理

基本概念:分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。举个例子:1.假设有一个进程A,每小时准点给用户发送一条短信"Hello world",为了高可

2017-07-24 23:36:55 287

转载 Java并发编程:volatile关键字解析

原文出处: 海子volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volat

2017-07-11 22:05:42 157

转载 从宜人贷系统架构看互联网高并发对金融系统架构的挑战

原文:http://www.p2pquan.com/article-740-1.html一、简介随着互联网金融的持续火热,越来越多的银行纷纷发布了各自的互联网金融产品。但是互联网产品“高并发、大数据量”的特点却对于银行传统的核心系统架构带来了新的挑战。 1、互联网的核心技术特征 当前互联网的核心技术特征主要可以概括为:分布式,易扩展,大量低端设备,底层开源软件。分布式结

2017-07-07 14:56:52 353

转载 理财平台架构分析

  一个理财平台可以从不同的维度来看。对于一个消费者来说,最宏观的看法,P2P公司的理财平台相当于一个中介,一边用于对接用户,一边用于对接产品提供商。这个中介系统负责用户和产品提供者之间的交互。对于一个P2P理财公司来说,最核心的两个模块是财务账目模块和运行模块。其他的模块都是基于这两个核心来扩展的。把登陆模块单独拎出来,是为了日后进行登陆安全控制;追踪客户记录进行大数据分

2017-07-07 13:45:41 1279

转载 分布式事务最终一致性常用方案

目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。一、基础理论

2017-07-06 17:24:00 389

转载 JVM(8):JVM知识点总览-高级Java工程师面试必备

在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。一个内功低的人招式在奇妙也打不过一个内功高的人。比如,你剑法再厉害,一剑刺过来,别人一掌打断你的剑,你还怎么使剑法,你一掌打到一个武功高的人身上,那人没什么事,却把你震伤了,你还怎么

2017-07-03 18:00:44 215

转载 JVM内幕:Java虚拟机详解

这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。线程JVM 系统线程每个线程相关的程序计数器栈本地栈栈限制栈帧局部变量数组操作数栈动态链接线程共享堆内存管理非堆内存即时编译方

2017-07-01 17:54:57 233

转载 Java高效并发之乐观锁悲观锁、(互斥同步、非互斥同步)

乐观锁和悲观锁首先我们理解下两种不同思路的锁,乐观锁和悲观锁。这两种锁机制,是在多用户环境并发控制的两种所机制。下面看百度百科对乐观锁和悲观锁两种锁机制的定义:乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,

2017-07-01 15:53:26 417

转载 java多线程:synchronized和lock比较浅析

转载:http://www.toutiao.com/a6392135944652587266/?tt_from=weixin&utm_campaign=client_share&app=news_article&utm_source=weixin&iid=7704173001&utm_medium=toutiao_ios&wxshare_count=1  synchroni

2017-07-01 15:52:03 229

转载 Hadoop常见错误及解决办法汇总

错误一:Java.io.IOException: Incompatible clusterIDs 时常出现在namenode重新格式化之后' V0 h# C5 a8 o+ ^1 n* w- t  k( ]$ }+ p6 d  G2014-04-29 14:32:53,877 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: I

2017-06-29 21:44:09 1322

转载 ActiveMQ集群:网络连接模式(network connector)详解 .

网络连接模式(network connector)针对海量消息所要求的横向扩展性和系统的高可用性,ActiveMQ提供了网络连接模式的集群功能。简单的说,就是通过把多个不同的broker实例连接在一起,作为一个整体对外提供服务,从而提高整体对外的消息服务能力。通过这种方式连接在一起的broker实例之间,可以共享队列和消费者列表,从而达到分布式队列的目的。拓扑结构几种不同的Ac

2017-06-29 21:42:22 1484

转载 ActiveMQ讯息传送机制以及ACK机制

ActiveMQ消息传送机制以及ACK机制详解    AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机制    Producer客户端使用来发送消息的, Consumer客户端用来消费消息;它们的协同

2017-06-29 21:41:09 257

转载 Java中ConcurrentHashMap学习

ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable每次同步执行的时候都要锁住整个结构。看下图:图左侧清晰的标注出来,lock每次都要锁住整个结构。Conc

2017-06-29 01:37:18 230

转载 面试总结——Java高级工程师(三)

面试前面也总结了一和二, 这第三篇可能更偏向于是内心的独白篇和面试技巧总结吧.....一、独白     之前也面试别人,现在轮到自己找工作,怎么说呢,每个面试官的看法不一样,面试的方式就不一样,比如我面试别人我喜欢问项目中他用到了那些,然后针对用到的技术去问一些问题,或者说对于某些场景的一些技术实现方案是我特别喜欢问的,比如当你的接口服务数据被人截包了,你如何防止数据恶

2017-06-29 01:26:47 436

转载 关于SimpleDateFormat安全的时间格式化线程安全问题

想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通

2017-06-29 01:20:56 230

solr+paoding

solr全文检索,全文检索,庖丁,分词,中文分词,庖丁jar,庖丁分词

2012-04-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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