`
suhuanzheng7784877
  • 浏览: 691959 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47254
社区版块
存档分类
最新评论
文章列表
1.  MBean介绍 从上一篇Blog的内容可以看到,我们大多数代码工作量都是自定义的一个JavaBean,这个JavaBean有属性、访问器(get)、写操作(set),之后还可以定义一些非常规方法,比如执行核心管理操作的方法,甚至还可以深度 ...
“武林至尊,宝刀屠龙。号令天下,莫敢不从。倚天不出,谁与争锋。”。这个是我们的射雕英雄郭靖留给倚天屠龙年代的唯一财富,小说中,这笔财富在反元起义军中起到了很重要的作用。咱们不说新版的小说改动吧,就用经典版来说事。倚天剑里面是《九阴真经》,而屠龙刀里面是《武穆遗书》(最新版小说已经修改),单独来讲,倚天剑和屠龙刀都是利器,作为武器,十分锋利。紫衫龙王都说过,灭绝师太凭着倚天剑的锋利,战胜了她,所以她想用屠龙刀雪恨,这当然是紫衫龙王的一种自嘲了。之后还有张无忌决战光明顶时使用白眉鹰王的白虹剑与倚天剑对抗,白虹剑也是一柄罕见的利器了,不过还是玩完了,由此足见倚天剑的威力还是十分给力的!在倚天剑面前,其 ...
1.  JMX规范 JMX是“Java管理扩展的”的缩写,它和其他JavaEE类似也是曾经的Sun提出的一种规范(规约),从名字上可以看出主要是负责系统管理。是一个为系统加入或者说扩展成有管理功能的规约,只要按照这套规约行事,您的系统,某些某块就具备被其他工具(例如JConsole)管理的能力。换句话说就是可以用JMX来监控咱们的系统运行情况,还有可以在运行时环境像Web Service、RMI一样调用系统管理类的一些方法。实现此规范的框架也很多:Spring、Tomcat、JBoss容器…… 2.  场景简述 咱们先假设一个情景,夫妻二人。男的因为工作需要要去外地出差,因公司规定,出差不 ...
1.  线程池是啥子 一说到池子,大家都会想到数据库连接池那种对象池。本来嘛,现在倡导废物回收利用的节能环保绿色新社会嘛。其实线程池的初衷就是能将已经创建好了的线程对象重复利用。之前咱们说过对于一个分布式系统,离不开高并发、多线程的支持。那么无论是HTTP方式的,还是文件方式的,面对海量的客户端请求,作为服务端如果对于请求使用单线程阻塞方式显然是不可能的。JDK5之后为咱们提供了现成的线程池对象。我们用几个现成的JDK辅助类就能将线程对象池化。线程池实际上也是对象池的一种特例,对象池主要是池化那些创建比较费劲、耗费资源比较大的大对象,比如你的重量级UI组件,比如你的IO文件对象。当然了,如果您 ...
转摘自某空间,看完颇有感触。摘录于此,与大家分享。      博主,看完以后,分析没错的话,生于1978年,清华大学硕士学位,北京某外企中层领导。         文中提及主要人物:我,农家子弟。               ...
1.  前言 之前总结的多线程的调度、并发调度、线程加锁安全等等并发包底层大都使用了线程锁机制。咱们通过锁的源码来看看JDK如何将这些资源进行加锁限制的,怎么就能做到线程集中等待后就唤醒主线程的。 2.  一段并发包源码 以下是java.util.concurrent.CyclicBarrier的底层代码片段。 private int dowait(boolean timed, long nanos) throws InterruptedException, BrokenBarrierException, TimeoutExcep ...
5.  CountDownLatch 很多资料上都说CountDownLatch是倒数计数器,我觉得这种说法太过专业,其实它就是一个数数的人员。利用它,可以在多线程执行任务完毕后完成进行多线程的等待,便于等待所有的线程之后在干别的事情,这个有点类似于FutureTask,使用上不太一样。这个场景就是一个线程必须要等到其他线程执行完毕后才能往下执行,注意,这里这个线程没必要需要其他线程的执行结果,而是只有一个条件就是其他线程必须执行完毕。咱们依然做个比喻,韦小宝需要8部《四十二章经》才能去鹿鼎山找寻宝藏,怎么办,他有7个老婆,不能资源浪费啊,这个任务同时进行吧。咱们设计8个线程同时进行,等所有老 ...
1.  前言 JDK提供的并发包,除了上一篇提到的用于集合外,还有线程的调度、协作、调度等等功能。上篇提到过,线程之间除了竞争关系,还有协作关系。在高并发环境下有效利用Java并发包解决线程之间协作的特殊场景。在并行计算,尤其是多线程计算的结果集合并的时候都需要用到这些并发同步器。还有一种使用场景,就是跨越多台机器(实机)的多线程进行并行运算,需要将多台机器进行结果集的汇总,合并。其原理核心也是使用这些并发协作包。 2.  FutureTask FutureTask是进行并行结果集合并的类,此类是Future接口的实现。在主线程中启动多个线程进行并发计算,之后再根据各个线程的执行结果进行汇 ...
唉~这一大篇blog又是只能显示部分,部分内容被截断了。。。。   4.  Set的并发 CopyOnWriteArraySet和CopyOnWriteArrayList底层实现差不多,就是在添加元素的时候需要对对象进行唯一性判断,如果对象数组已经含有重复的元素,不进行增加处理。在此不再赘述。 5.  Queue的并发 队列的并发类是java.util.concurrent.ArrayBlockingQueue,从类名字上大家估计就能猜出来了,底层使用的依然是数组。这个ArrayBlockingQueue是继承自原始的java.util.AbstractQueue,所以很多方法在父类里 ...
1.  前言 平时咱们使用的HashMap、ArrayList等等容器集合包都存在线程安全的问题,看过JDK源码的各位朋友们知道这些实现类底层,为了性能,都没有对这些集合的操作方法做加锁或者副本传递机制,只有Vector和Stack是线程安全的,大家可以看它们的源码,底层方法是以在方法上加上synchronized作为代价的,换句话说是用时间换取空间的方式。Sun JDK对多线程并发环境下做了很多并发的解决方案,其类大都在java.util.concurrent.*下面,此包下的类和java.util.*包下面的集合类,在使用上几乎没什么太大分别,想想也是啊!他们都是实现接口规范:List、S ...
1.  前言 既然是分布式系统,就离不开对于多线程程序的开发,面对客户端大并发的访问,如何控制程序的多线程资源?我们都知道在程序中使用关键字synchronized,对对象级别的加锁也好,对类级别的加锁也罢。JVM在底层是如何 ...
唉~~因为blog总显示不全只能分为2个了,排版也不是很好,凑合着看吧。 客户端执行的优化策略有如下3种措施 方法内联:一个方法的执行离不开其他方法的支持,若调用的其他方法十分简单。那么调用的时候会将被调用那个方法里面所有的内容粘到主调方法中,这样做的好处是节省参数变量,中间变量的资源和返回值的资源申请位置。     private void
1.  前言-为何要再谈JVM 很多人认为,分布式Java应用看上去好像和Java虚拟机没什么太多关注的东西,别说分布式系统了,就是一个单机JavaSE系统也不用将JVM学得透透的,有个JVM执行不就行了吗。据笔者的经验回答则是,在大型分布式系统,尤其是云计算服务平台,SAAS也好,PAAS也罢,要求编写的应用必须要高效,你就当你运行的是一个配置很小的机器上,要求资源比较苛刻。所以了解,甚至再学习JVM相关知识还是十分必要的。之前笔者写过一篇关于JVM加载类的文章http://suhuanzheng7784877.iteye.com/blog/964784。后来发现这些还是不够的,还是需要在总 ...
1.  前言 当我们所做的系统到一定的程度后,随着涉及的领域越来越宽泛,客户群也越来越多,我们的系统不得不需要第三方系统协作,或者将原有大系统分解成各个协作的小系统才能更好地完成任务。就好像KFC,收银员就负责 ...
1.  前言 现在很多做网络通讯中间代理层的通讯都是使用Java1.4以后推出的NIO进行编写,现在还有很多开源的框架也是封装了NIO的书写细节来帮助大家简写异步非阻塞通讯服务。像MySql的代理中间件amoeba-mysql-proxy就是采用NIO的方式 ...
Global site tag (gtag.js) - Google Analytics