多线程、JVM
liou825
这个作者很懒,什么都没留下…
展开
-
VisualVM
visualVM集成到Eclipse针对性能监控:http://www.blogjava.net/Nirvana/archive/2012/09/13/387618.html本文原文:http://blog.csdn.net/hujunsong/article/details/6860303【51CTO独家译稿】令人意想不到的宝贝,其实往往已经早就在你眼前,只不过你没发现它。Vis转载 2014-01-05 22:52:45 · 4306 阅读 · 0 评论 -
ThreadPoolExecutor几点应用建议
ThreadPoolExecutor几点使用建议背景前段时间一个项目中因为涉及大量的线程开发,把jdk cocurrent的代码重新再过了一遍。这篇文章中主要是记录一下学习ThreadPoolExecutor过程中容易被人忽略的点,Doug Lea的整个类设计还是非常nice的 正文先看一副图,描述了ThreadPoolExecutor的转载 2014-01-20 15:42:30 · 7141 阅读 · 1 评论 -
Java多线程(五)之BlockingQueue深入分析
原文: http://blog.csdn.net/vernonzheng/article/details/8247564一、概述:BlockingQueue作为线程容器,可以为线程同步提供有力的保障。二、BlockingQueue定义的常用方法1.BlockingQueue定义的常用方法如下: 抛出异常特殊值转载 2014-01-20 16:13:35 · 773 阅读 · 0 评论 -
线程间协作
原文:http://www.cnblogs.com/duanjie/archive/2012/04/26/2489175.html 通过保证在临界区上多个线程的相互排斥,线程间可以完全避免竞争状态的发生,但是有时候还是需要线程之间的相互协作。使用条件(Condition)便于线程间通信。一个线程可以指定在某种条件下该做什么。标间是通过调用Lock对象的newCoditionn(转载 2014-03-08 23:46:03 · 955 阅读 · 0 评论 -
PriorityQueue的compare函数介绍
原文:http://blog.csdn.net/a15994269853/article/details/20571317 优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。PriorityQueue是从JDK1.5开始提供的新的数据结构接口。如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则转载 2014-03-16 12:19:42 · 1628 阅读 · 0 评论 -
淘宝下单高并发解决方案
http://www.cnblogs.com/yukaizhao/archive/2012/04/23/taobao_order_design.html周末参加了@淘宝技术嘉年华 主办的技术沙龙, 感觉收获颇丰,非常感谢淘宝人的分享。这里我把淘宝下单高并发解决方案的个人理解分享一下。我不是淘宝技术人员,本文只是写自己的理解,所以肯定是会有一些出入的。在session中牧劳为我们转载 2014-03-28 21:24:23 · 863 阅读 · 0 评论 -
Java内存泄露的理解与解决(转)
Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbage co转载 2014-03-28 21:39:39 · 546 阅读 · 0 评论 -
Java 理论与实践: 非阻塞算法简介
原文:http://www.ibm.com/developerworks/cn/java/j-jtp04186/在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情。Java 语言中主要的同步手段就是synchronized 关键字(也称为内在锁),它强制实行互斥,确保执行 synchronized 块的线程的动作,能够被后来执行受相同锁保护的sy转载 2014-03-31 16:01:27 · 549 阅读 · 0 评论 -
Java性能调优笔记
最近一直被调优的问题困扰,不停的查找资料,此乃google到的一篇博文,故转载之。 调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。寻找性能瓶颈性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。资源消耗:CPU、文件IO、网络I转载 2014-04-01 09:08:15 · 614 阅读 · 0 评论 -
一步步优化JVM六:优化吞吐量[转]
现代JVM是一个具有灵活适应各种应用能力的软件,尽管很多应用能够在JVM的默认配置下运行良好,但是有些应用还是需要优化JVM配置以达到其性能要求。由于各种各样的应用能够运行在现在JVM上面,所以大量的JVM选项可以配置来提升应用的性能。不幸的是,对一个应用而言优化得很好的JVM配置,对应另外的应用不一定适合。所以,真正理解怎样优化JVM配置是非常有必要的。 优化现代JVM是一门很大的艺术,转载 2014-04-04 16:18:09 · 1481 阅读 · 0 评论 -
通过jstat、jmap对java程序进行性能调优
原文:http://blog.csdn.net/jerry024/article/details/85075891. 背景硬件供应商多次反映,在tomcat启动一段时间后,经常出现cpu占用率100%,且重启前一直保持在100%的情况。在重启后cpu占用率回落,但是一段时间后再次出现问题。下图为cpu占用率100%时使用top命令的截图,可以看到java进程的cpu转载 2014-02-17 00:34:40 · 5336 阅读 · 0 评论 -
Exchanger-兄弟线程的信息交换
原文:http://www.2cto.com/kf/201209/157884.html 如果两个线程在运行过程中需要交换彼此的信息,比如一个数据或者使用的空间,就需要用到Exchanger这个类,Exchanger为线程交换信息提供了非常方便的途径,它可以作为两个线程交换对象的同步点,只有当每个线程都在进入 exchange ()方法并给出对象时,才能接受其他线程返回时给出的转载 2014-01-22 22:46:28 · 547 阅读 · 0 评论 -
CyclicBarrier介绍
原文:http://www.iteye.com/topic/980944CyclicBarrier介绍 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的转载 2014-01-22 23:42:53 · 571 阅读 · 0 评论 -
java并发编程实践笔记
1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量b, 使共享变量是final类型的c, 将共享变量的操作加上同步 2, 一开始就将类设计成线程安全的, 比在后期重新修复它,更容易. 3, 编写多线程程序, 首先保证它是正确的, 其次再考虑性能. 4, 无状态或只读对象永远是线程安全的. 5, 不要将一个共享变量裸露在多线程转载 2013-12-27 15:33:40 · 704 阅读 · 0 评论 -
Java IO流学习总结
原文:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.htmlJava流操作有关的类或接口:Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流转载 2014-01-08 14:47:57 · 505 阅读 · 0 评论 -
java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执转载 2013-12-25 15:43:38 · 623 阅读 · 0 评论 -
处理线程泄露
原文:http://sunnylocus.iteye.com/blog/538282当一个单线程化的控制台程序因为未捕获的异常终止的时候,程序停止运行,并生了栈追踪,这与典型的程序输出不同,当一个程序发生了异常说明有不稳定的因素存在。如果并发程序中线程失败就没那么容易发现了。栈追踪可能会从控制台输出,但是没有人会去一直在看控制台,并且,当线程失败的时候,应用程序可能看起来仍在工作。就象转载 2013-12-26 15:22:36 · 624 阅读 · 0 评论 -
BlockingQueue、thread.join()、Semaphore、Timer 和ScheduledThreadPoolExecutor
原文:http://wsmajunfeng.iteye.com/blog/1629354前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包转载 2013-12-25 23:34:33 · 1060 阅读 · 0 评论 -
死锁问题
在所有的并发编程活跃度问题中死锁无疑是最为严重的,在Java编写的系统中更为严重,因为Java应用程序不能从死锁中恢复,唯一的办法就是重新启动服务器,然后默默向上苍祷告不要再出现这样的噩梦。我想凡是正规计算机专业毕业的朋友都会学习操作系统课程,在操作系统中一定会接触过经典的“哲学家进餐”问题,这个问题很好的揭示了死锁。当一个线程永远占有一个锁,而其他线程尝试去获得这个锁,那么他们将会被永远的阻转载 2013-12-27 15:27:52 · 1060 阅读 · 0 评论 -
单生产者-多消费者/CountDownLatch
原文:http://www.cnblogs.com/phinecos/archive/2011/08/23/2151191.html今天的工作需求如下:有一个生产者负责生成源数据,将数据插入到多个工作队列中,每个工作队列由一个线程池进行处理,即每个线程池中可以启动多个线程对与其对应的工作队列中的元素取出来进行处理。 我将业务需求抽象为一个“单生产者—多消费者集群”模型,写转载 2014-01-10 14:45:07 · 918 阅读 · 0 评论 -
垃圾回收调优及JVM参数详解
原文:http://zhaohe162.blog.163.com/blog/static/382167972011910112950666/一、常用JVM配置参数1.1基本参数-client,-server 这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能 和内存 管理效率不如server模式,通常用于客户端应用程序。相反,s转载 2014-01-13 16:37:59 · 708 阅读 · 0 评论 -
Java 信号量 Semaphore 介绍
原文:http://www.cnblogs.com/whgw/archive/2011/09/29/2195555.html Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许转载 2014-01-22 09:46:34 · 559 阅读 · 0 评论 -
Spring3.0框架结构
原文:http://chenchh.iteye.com/blog/675701Spring 框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块。这些模块分为Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation和测试部分,如下图所示:转载 2014-01-23 10:46:15 · 4802 阅读 · 0 评论 -
Java多线程 阻塞队列和并发集合
本章主要探讨在多线程程序中与集合相关的内容。在多线程程序中,如果使用普通集合往往会造成数据错误,甚至造成程序崩溃。Java为多线程专门提供了特有的线程安全的集合类,通过下面的学习,您需要掌握这些集合的特点是什么,底层实现如何、在何时使用等问题。3.1 BlockingQueue接口java阻塞队列应用于生产者消费者模式、消息传递、并行任务执行和相关并发设计的大多数常见使用上下文。转载 2014-04-25 16:23:52 · 889 阅读 · 0 评论