最新文章列表

Java多线程编程模式实战指南(三):Two-phase Termination模式

本文由本人首次发布在infoq中文站上:http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-two-phase-termination。转载请注明作者: 黄文海 出处:http://viscent.iteye.com。   停止线程是一个目标简单而实现却不那么简单的任务。首先,Java没有提供直接的API用 ...
viscent 评论(4) 有1479人浏览 2015-01-25 11:54

Java并发编程学习笔记(4)

第三部分:活跃度、性能和测试 10 避免活跃度危险 如果所有线程以通用的固定秩序获得锁,程序就不会出现顺序锁死锁问题了。 当调用的方法不需要持有锁时,这被称为是“开放调用”。依赖于开放调用的类会具有更好的行为,并且比那些需要获得锁才能调用的方法相比,更容易与其他类合作。   在程序中尽量使用开放调用,依赖于开放调用的程序,相比于那些在持有锁时还调用外部方法的程序,更容易执行死锁自由度的分 ...
aoyouzi 评论(0) 有821人浏览 2015-01-24 19:32

Java并发编程学习笔记(3)

8应用线程池 有些类型的任务需要明确指定一个执行策略,如依赖性任务、采用线程限制的任务,对响应时间敏感的任务、使用ThreadLocal的任务。(只有当线程本地thread_local()值的生命周期被限制在当前任务种时,在池的某线程中使用ThreadLocal才有意义;在线程池中,不应该使用ThreadLocal传递任务间的数值)   当任务都是同类的、独立时,线程池才有最佳的工作表现。 ...
aoyouzi 评论(0) 有652人浏览 2015-01-24 19:32

Java并发编程学习笔记(2)

构建块 在实践中,委托是创建线程安全类最有效的策略之一:只需要用已有的线程安全类来观礼所有状态即可。 平台类库包含一个并发构建块的丰富集合。比如线程安全容器和多种同步工具(synchronizer:用来调节相互协作的线程间的一些控制流)   同步容器 同步容器类包括2部分:一个是Vector+HashTable,一个是它们的同系容器。在JDK1.2时才被加入的同步包装类(
aoyouzi 评论(0) 有798人浏览 2015-01-24 19:31

Java并发编程学习笔记(1)

线程安全的代码本质上是管理队状态的访问,而且是共享/可变的状态. 一个对象的状态就是它的数据,存在状态变量中,还包括了任何会对它外部可见行为产生影响的数据.   共享:一个变量被对个线程访问 可变:变量的
aoyouzi 评论(0) 有693人浏览 2015-01-24 19:30

JAVA线程04:所对象Lock

    Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步 ...
weiweishouwang 评论(0) 有467人浏览 2015-01-23 14:46

JAVA线程02:可见性和有序性

    Java线程有两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。     可见性:当一 ...
weiweishouwang 评论(0) 有663人浏览 2015-01-23 13:27

JAVA线程01:线程安全与不安全

    在JDK API中,总会发现一些类说明写着,线程安全或者线程不安全。如StringBuffer文档中写到“可将字符串缓冲区安全地用于多个线程可以在必要时 ...
weiweishouwang 评论(0) 有635人浏览 2015-01-23 11:12

并发编程之akka简介

什么是akka     akka是一个用scala编写的库,用于简化编写可容错的,可扩展的,高并发应用。akka使用actor模型来提升抽象能力,提供更好的平台来构建可扩展的,弹性的应用。对于比较难处理的错误,akka采用“let it crash”模型来处理,这种模式可以使得一个任务的处理失败不会导致整个应用的crash,使你的系统拥有强大的自愈能力,也不需要重启来恢复系统。同时akka的分 ...
沉沦的快乐 评论(0) 有3016人浏览 2014-12-02 19:52

CAS原理

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。 锁机制存在以下问题: (1)在多线程竞争下,加锁、 ...
yuexiaodong 评论(0) 有509人浏览 2014-06-16 19:36

并行编程——并发级别

在看多核编程相关论文时,往往一个并发算法会说自己是wait-free的或者lock-free的,或者是 non-blocking 的,这些专有词汇其实表示的是并发的程度,或者说并发的级别。并发级别的理解是阅读各种并发算法设计论文以及并发数据结构实现的必备基础。 1.1  Wait-freedom 无等待并发 Wait-freedom 指的是每一个线程都一直运行下去而无须等待外部条件,整个流程中 ...
vincentzhwg 评论(0) 有960人浏览 2014-03-19 22:45

java并发编程实践

 一、基础概念总结 1.多线程程序可能存在的风险:(1)安全性问题:多线程程序在没有充足同步的情况下,在特定的线程执行时序下,多个线程同时操作一块共享资源时,可能引发错误。(2)活跃性问题:当多个线程存在竞争共享资源时,可能会引发死锁,饥饿(线程长时间得不到执行)及活锁(定义:不断的重复相同的操作,而且永远不会成功)或死循环等问题。(3)性能问题:引入多线程后,如果设置不 ...
rainforc 评论(0) 有616人浏览 2014-02-18 11:51

并发编程交流

                                                  并发编程交流   对于Java体系而言主要还是借助多线程来做并发。   1.资源竞争的一致性         Sun JDK提供的支持:synchronized、semaphore、countdownlatch、rentratlock、condition、       Some ...
zjutwangqian 评论(0) 有672人浏览 2013-12-17 12:33

Java多线程专题,从入门到精通,让你快速全面掌握JAVA多线程技术

下面是Java线程系列博文的一个编目: Java线程(1):概念与原理 Java线程(2):创建与启动 Java线程(3):线程栈模型与线程的变量 Java线程(4):线程状态的 ...
lk557 评论(1) 有4373人浏览 2013-12-13 12:59

并发编程系列-并行子任务的超时控制

在并发编程中,经常会遇到提交多个子任务并行执行的场景。比如一个中心节点同时派发任务给多个子节点,然后中心节点等待所有子节点完成任务后继续主流程。在这个过程中,主节点需要设置一个最大等待超时,当达到超时时间后不再等待未返回的节点结果,做功能降级处理。 对于这种需求,如果子任务是阻塞执行的,则一般会使用一个线程池来执行子任务,但主任务如何唤醒超时呢?直接想到的方式是主任务在提交完所有子任务后进入一个循 ...
blueswind8306 评论(0) 有2556人浏览 2013-11-23 19:13

并发编程基础(篇一)

并发编程——基础部分(篇一)         这几天在研究Java中的线程机制,结果越是看,反而感觉越是掌握的太少,变得多疑而又自信,因为Java线程机制教会我,“理论上是可靠的,实际是不准确的。”,一直向前走,越会发现精彩而又迷惑的地方,这就是Java中的线程机制这几天所带给我的一些东西,虽然只是研究了很小一部分,但是感觉也很有收获,所以在这里将自己的读书笔记或是可以称为收货记录下来。    ...
wojiaolongyinong 评论(4) 有2592人浏览 2013-10-03 00:22

关于java并发编程的一些概念及策略

  最近抽出了点时间,把java并发编程的一些概念和策略总结了一下:   1. 同一个程序中的多个线程可以被同时调度到多个CPU上(利用这一点通常能提高cpu的使用率) 2. 多线程运用的例子:RMI、Servlet、GUI(通常情况下:GUI对象都只能在实事件线程中访问且GUI的对象是被封闭在  单个线程当中)、Timer等 3. 只有当类中仅包含自己的状态时,线程安全类才是有意义的 ...
justdo2008 评论(0) 有1261人浏览 2013-09-12 14:46

请看你离并发编程还有多远

前言: 代码简洁与性能高效无法两全其美,本系列文章专注于并发编程,提高性能,本文章是在读 Java Concurrency In Practice时自己总结的一些体会。有理解不正确的地方,还请指出。     请回答以下几个问题: 问题一、你的项目是否运行在多核CPU甚至多CPU的服务器上? 问题二、你的项目中,是否使用到了线程池? 问题三、你的项目是否使用到了集群或者用到了分布式框 ...
donlianli 评论(1) 有1570人浏览 2013-07-04 21:04

并发编程概观

一.并发编程是什么     与串行编程对应,串行编程只有一个执行流,而并发编程有多个执行流。   二.并发编程为什么     根源在于Amdahl ‘s law,可以通过并行化来提高计算速度,提高的比率为1/(p+(1-p)/n),其中p为无法并行的百分比,n为并行轨道。     对一个程序,要分析每个部分使用的资源,cpu,内存,io(硬盘、网络、人)。  
ziwuzu 评论(0) 有726人浏览 2013-06-05 10:46

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics