最新文章列表

Condition 条件变量,线程通信更高效的方式

条件(也称为条件队列 或条件变量)为线程提供了一个含义,以便在某个状态条件现在可能为 true 的另一个线程通知它之前,一直挂起该线程(即让其“等待”)。因为访问此共享状态信息发生在不同的线程中,所以它必须受保护,因此要将某种形式的锁与该条件相关联。等待提供一个条件的主要属性是:以原子方式 释放相关的锁,并挂起当前线程,就像 Object.wait 做的那样   在Condition中,用a ...
cuisuqiang 评论(0) 有3251人浏览 2014-02-19 11:46

AQS源码阅读理解(uncompleted)

有head和tail 当acquire*操作的时候,如果我们定义的资源限制操作返回false时,会在tail端加入一个新的节点(Node里面的所有基础属性都是volatile,用CAS设置tail指针)。 然后利用LockSupport.part(this)阻塞。 当release的时候,如果我们定义的资源操作返回true,会将head节点的下一个SIGNAL节点的thread唤醒。 被 ...
xussen 评论(0) 有807人浏览 2014-01-20 16:19

Maven中如何实现条件分支

Ant中有condition表达式,maven中对应的是profile,下面的链接相信描述了如何实现分支功能. http://maven.apache.org/guides/introduction/introduction-to-profiles.html
darrenzhu 评论(0) 有1427人浏览 2014-01-14 10:14

Lock和synchronized同步的初步理解

    先看一下使用Lock的例子(javaDoc的例子):   其实看下java.util.concurrent.ArrayBlockingQueue的代码,就会发现,下面的put/take方法其实就是java.util.concurrent.ArrayBlockingQueue的put/take方法的实现。   import java.util.concurrent.locks. ...
dreamoftch 评论(0) 有1628人浏览 2013-12-06 11:31

面试题--三个线程循环打印ABC10次的几种解决方法

最近发现公司有份笔试试卷中有道多线程的题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC… 这个最早好像是迅雷的面试题目吧,看到了然后就想重温一下这个题目的解决方法。 在本文中,给出了五种这个题目的解决方法: 使用sleep 使用synchronized, wait和notifyAll 使用Lock 和 Condition 使用Semaphore 使用 ...
MouseLearnJava 评论(3) 有10342人浏览 2013-09-29 20:01

Java并发编程-Condition使用实例

本文将简单介绍用于线程协作的Condition, 并给出一个例子,实现一个多线程题目--有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC… 。 Condition是从JDK 1.5开始有的。API是这么描述的: 以上是Condition接口定义的方法,await()对应于Object#wait(),signal()对应于Object#notify(), ...
MouseLearnJava 评论(0) 有4895人浏览 2013-09-27 21:35

Java线程通信实现生产者-消费者

生产者消费者是经典的线程之间同步通信问题,生产者线程只有在产品仓库中没有产品的时候才生产产品,当它生成完一个产品以后唤醒消费者线程,消费者线程只有在产品仓库中有产品的时候才能取走产品,然后唤醒生产者线程。 Java可以有好几种方法解决这个问题。首先基础的当然是用Object的wait()、notify()和notifyAll()。 产品仓库类: //产品仓库 public class P ...
tonlion2046 评论(0) 有1843人浏览 2013-09-04 20:02

jdk1.5条件阻塞Condition的应用

package cn.com.songjy.test.socket.thread; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import org.apache ...
宋建勇 评论(0) 有1366人浏览 2013-08-23 09:42

多线程程序一段问题代码分析(生产者消费者)

问题在《一个java生产者消费者代码的问题》,解答一下,只解释原因,其他不考虑。   作者要的是一个生产者生成,接着必须有一个消费者消费,那这不是需要单线程吗?或者使用1个大小的阻塞队列。所以只谈论问题本身,不谈论好不好。   具体代码: import java.util.concurrent.locks.Condition; import java.util.concurren ...
jinnianshilongnian 评论(21) 有7196人浏览 2013-06-25 07:35

JDK1.5 Condition接口

Condition 将 Object 监视器方法(wait、notify和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set (wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition
bijian1013 评论(0) 有1194人浏览 2013-05-21 12:42

转 Using "Condition" step

Condition Step By Suresh Kumar Parvathaneni from link. Agenda: This document details about the steps “Condition”. <?XML:NAMESPACE PREFIX = O ?> Pre-requisites: It is assumed that the reader ...
evangxli 评论(0) 有778人浏览 2013-05-02 14:00

java之12天 多线程 (一)

线程间通信问题 /** * 线程间通信问题 * 其实就是多个线程在操作通过一个资源,但是操作的动作不同. * * 同步的前提: * 1.必须要有两个或者两个以上的线程 * 2.必须是多个线程使用同一个锁 * * 等待唤醒机制 * * wait() * notify() * notifyAll(); * * 都使用在同 ...
Luob. 评论(0) 有1436人浏览 2013-04-16 10:25

5、线程间通讯

一、线程间通讯       其实就是多个线程在操作同一个资源,但是操作的动作不同。   例如有一个资源,包含name sex信息 一个输入线程要对其进 ...
豆豆咖啡 评论(0) 有701人浏览 2013-03-06 12:33

Chapter 14. Multithreading

1.  The essential difference between multiple processes and multiple threads is that while each process has a complete set of its own variables, threads share the same data. However, shared variables ...
leonzhx 评论(0) 有1016人浏览 2013-02-25 12:53

【转】Java并发编程J.U.C之Condition

          转载自http://www.goldendoc.org/2011/06/juc_condition/            在上一篇中,我们了解了下锁的获取与释放的过程,这个过程主要通过在A.Q.S中维持一个等待队列来实现,其中我们也提到了,在A.Q.S中除了一个等待队列之外,还有一个Condition队列,在了解Condition队列之前,先来看一下Condition是 ...
longgangbai 评论(0) 有1912人浏览 2012-12-10 13:14

【转】Java并发编程J.U.C之锁的获取与释放

   转载自          http://www.goldendoc.org/2011/06/lock_acquire_release/       上一篇文章中,我们对J.U.C做了了解,在这一篇文章我们将来以ReentrantLock为例,来分析一下锁的获取和释放的过程,让大家能够对锁的获取和释放的整体过程有一个了解。 一、锁的获取 先看下ReentrantLock的lock() ...
longgangbai 评论(0) 有1616人浏览 2012-12-10 13:07

JAVA多线程-厕所问题

在http://my.oschina.net/xpbug/blog/88259上看到的并发问题---上厕所问题,博主使用的是内置锁实现的, 利用空闲时间改为使用可重入锁实现,写的过程充斥着对并发知识的复习,又翻起了Goetz的并发编程实践,真是好书啊。   直接上代码了,题目在代码里   package org.waitingfortime.并发趣题; import java.util ...
mazhiyuan 评论(0) 有2007人浏览 2012-11-22 11:55

ant 条件判断 condition(转)

本文转自:http://www.51testing.com/?uid-350678-action-viewspace-itemid-809501   用ant写个build.xml,用到condition,作笔记如下:    basic elements: istrue isfalse not and or xor available isset equals  filesmatch    1、 ...
zhousheng193 评论(0) 有978人浏览 2012-09-17 16:36

阻塞队列实现

实现代码: import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class BlockingQuery { private Object[] item; private int takeIndex, putIndex, count; p ...
cuiliwei 评论(0) 有839人浏览 2012-07-12 11:33

最近博客热门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