
并发程序设计
iteye_2655
这个作者很懒,什么都没留下…
展开
-
并发程序入门
多线程是改进顺序执行任务的利器之一。但多线程的使用,却带来这样那样的问题。先认识一下多线程。多线程就是利用多个最少执行单元在较短的时间内利用多核处理器近乎同时的执行同一个任务的不同部分,或者是不同任务。使得原来需要串行执行的任务能够并发的执行。这样的好处在于,缩短了这次任务的执行时间,给用户更好的响应。但多线程却未必会带来性能上的提高,因为多线程要考虑到多个线程的创建成本,多线程之间的上下文切换和...原创 2010-12-18 13:53:08 · 134 阅读 · 0 评论 -
多线程之数据同步方式
多线程出现后,最大的问题就是对资源的竞争如何保证同步的状态。java中同步的办法有很多。通过以下几个代码示例来看JAVA多线程同步状态保持机制。 首先来看无同步状态下 多线程和单线程执行情况,代码示例如下: [code="java"] package sychonizedDemo; import java.util.concurrent.CountDownLatch; pub...2010-12-18 14:56:46 · 204 阅读 · 0 评论 -
zz Java 理论与实践: 正确使用 Volatile 变量
原文来自 http://www.ibm.com/developerworks/cn/java/j-jtp06197.html Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchron...原创 2010-12-18 15:47:49 · 124 阅读 · 0 评论 -
多线程之线程池探索
多线程应用执行时JDK提供了线程的载体,线程池,通过线程池管理线程,优化线程的执行,有效合理利用资源。而JDK提供的线程池有四大类:FixedThreadPool,SingleThreadExecutor,CachedThreadPool,ScheduledThreadPool。这四种池各有特点。现在一一来看。 第一,FixedThreadPool,来自jdk的解释是这样的:创建一个可重用固...2010-12-20 19:24:12 · 123 阅读 · 0 评论 -
多线程之并发流程控制方式
多线程间经常需要协调一批任务线程同时完成之后去做某事,而Java中提供的流程控制有两种方式:一种是CyclicBarrier,另一种是CountDownLatch. 第一种方式 CyclicBarrier。来自jdk的解释:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相...2010-12-21 11:41:32 · 147 阅读 · 0 评论 -
java.lang.OutOfMemoryError: unable to create new native thread
今天压系统,出现一个java.lang.OutOfMemoryError: unable to create new native thread问题,整个linux系统都不可用了. 通过top -H命令看到线程数大于3万。 通过ulimit -s 看到堆栈大小100K. ps -mp <pid>定位到问题进程。 然后jstack pid 查看进程相关信息,定位到代码...原创 2012-05-09 21:55:45 · 193 阅读 · 0 评论