最新文章列表

多线程操作---可重入锁概念

//可重入锁的概念是 自己可以再次获得自己的内部锁, //重进入的实现是通过每个锁关联一个请求计数和一个占有它的线程,当计数为0时,认为锁是未被占有的,线程请求一个未被占有的 //锁时,jvm将记录锁的占有者,并将请求计数置为一,如果同一个线程再次请求,计数器将递增,每次占用线程退出同步块 //计数器值将递减,直到计数器为0,锁释放 //如果内部锁不是可重入的,代码将死锁 class Widg ...
z466459262 评论(0) 有5232人浏览 2012-06-03 15:04

Groovy同步

原贴点击这里 在 groovy 中同步 我的项目与 groovy 版本是 1.7.2、 有需要同步,有任何 groovy 的方式执行此操作的方法或跟随同一 java 标准放同步方法之前 e.g : synchronized static def  Map getMap(def fileName) { } 2条回答 回答#1 如果您可以升级到 Groovy 1.7.3 可以使用 Synch ...
leon1509 评论(1) 有1734人浏览 2012-05-30 14:30

AtomicInteger 浅谈

   众所周知,AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。    要使用多处理器系统的功能,通常需要使用多线程构造应用程序。但是正如任何编写并发应用程序的人可以告诉你的那样,要获得好的硬件利用率,只是 ...
zcmor 评论(1) 有1928人浏览 2012-05-20 12:02

java的synchronized

不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对前段时间工作的总结和自我技术的条理话。JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身 ...
blackproof 评论(0) 有1165人浏览 2012-04-09 09:40

JDK6运行时性能优化

Synchronized性能优化: 粗化锁区域:通过扩大已存在锁,减少unlock和re-lock操作,降低所开销;默认启用,启用参数:-XX:+EliminateLocks 同步削减:通过逃逸分析,削减线程局部变量上的锁;启用参数:-XX:+DoEscapeAnalysis 偏袒锁机制:延长创建锁机制线程上锁的租约,知道有其他线程竞争锁时才释放(个人理解:相当于延长锁时间,减少释放、获取锁 ...
yychao 评论(0) 有1888人浏览 2012-03-29 00:08

volatile简单理解

  习惯了先举个例子,这个是我学习时遇到的问题。    volatile x = 0;    A,B俩个线程。    都做加一操作x=x+1。      输出结果A线程X=1, B线程X=1.(一种情况)    我自己期望出现的结果:1,2。我的理解是,当A线程改变了x的值,B会及时知道,然后做加一操作,那么等到结果一定是2。可是忘了加操作和赋值是2个操作,x=x+1并非原子性。    分析: ...
lujin55 评论(0) 有1089人浏览 2012-03-19 15:16

StringBuffer and StringBuilder

String is immutable whereas StringBuffer and StringBuilder can change their values.     The only difference between StringBuffer and StringBuilder is that StringBuilder is unsynchronized whereas Stri ...
lingceng 评论(0) 有826人浏览 2012-03-18 11:02

Java线程通信(一)

           目录:              1 synchronized的作用域              2 线程的状态及线程类的一些常用方法:              3 一个简单多线程通信的例子:              1 synchronized的作用域:              假设存在如下条件:2个线程(ThreadOne and ThreadTw ...
wenbing2610 评论(0) 有962人浏览 2012-03-09 20:23

Java volatile

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。 我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要 ...
gavin_zhang 评论(0) 有1023人浏览 2012-03-07 16:40

使用synchronized和Lock对象获取对象锁

在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。 1.对象的锁     所有对象都自动含有单一的锁。     JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。     只有首先获得锁的任务(线程)才能继续获取该对象上的多个锁。     每当任务离开一个synchro ...
huanggaole 评论(0) 有983人浏览 2012-02-29 15:58

java多线程同步synchronized

记录代码 有兴趣可以运行试试,然后想想。 最终结论只有一条: “synchronized”关键字同步的始终是 该synchronized修饰的方法的持有对象(同步方法) 该synchronized修饰的对象(同步块) 目前我所知的synchronized关键字用法,分3种情况:   普通方法上使用  eg: public synchronized void method(.. ...
lyjilu 评论(3) 有1736人浏览 2012-02-26 12:01

JAVA 单例的两种模式

/** * 单例模式:保证一个java的类只有一个实例 * 可以通过将构造方法声明成私有的,在类内部创建实例 * 对外提供一个公用方法来获取这个实例 * 饱汉模式:一般认为饱汉模式安全。每次申请一次内存,宁撑死不挨饿 * 饥汉模式:注意饥汉模式下的公用方法必须是线程同步的,原因???? * 其他模式:定义一个类,构造方法为private,所有方法为stat ...
elan1986 评论(0) 有1411人浏览 2012-02-16 09:52

【Java】synchronized详解

  Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。      一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。      二、然而,当一个线程访问object的一个synchro ...
moto0421 评论(0) 有1168人浏览 2012-02-10 10:22

java同步机制 synchronized

JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。 在进一步阐述之前,我们需要明确几点: A.无论synchronized关键字加在方法上还是 ...
落地窗 评论(0) 有1055人浏览 2012-02-04 22:48

Practicle Java笔记 实践46-58(同步&线程部分)

  实践46 同步机制锁定的是对象,而不是函数或代码。当synchronized被当作函数修饰符时,它所取得的lock被交给函数的调用者。如果synchronized用于object reference,则取得的lock交给该reference所指的对象。(因此同一类2个不同对象之间加this锁是无效的,因为不是同一个锁) Java不允许将构造函数声明为synchronized。当两个线程 ...
cookiejj2010 评论(0) 有1414人浏览 2012-01-19 15:53

spring中的bean覆盖

通过DefaultListableBeanFactory 这个类可以了解到: 1 spring 使用 ConcurrentHashMap 来存储bean 。 2 两个不同的配置文件中,重名的bean, 后者会覆盖前者 。 代码段: synchronized (this.beanDefinitionMap) { Object oldBeanDefinition = this.beanD ...
xiebo1983 评论(0) 有4343人浏览 2011-12-21 15:03

【转】同步块和同步方法

首先,需要说明一点,也是最重要的一点,无论是同步方法 还是 同步块 都是只针对同一个对象的多线程而言的,只有同一个对象产生的多线程,才会考虑到 同步方法 或者是 同步块,如果定义多个实例的同步,可以考虑使用mutex,创建类似于c++整个服务全局锁,或者创建一个全局单例类,在其内定义全局锁。比如以下的代码片段定义线程同步无任何意义: public class Test1 implements Ru ...
xiewenbo 评论(0) 有1329人浏览 2011-12-07 09:27

JAVA中线程同步方法

1  wait方法:        该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。        调用wait方法需要注意几点:        第一点:wait被调用的时候必须在拥有锁(即sync ...
king_wangyao 评论(0) 有1946人浏览 2011-11-28 21:01

Java线程wait-notify+sleep+synchronized

1.sleep-wait-yield区别 sleep是Thread类中的一个静态方法,其定义如下,   public static void sleep(long millis)throws InterruptedException 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响,如果指定睡眠的时间到达,则从阻塞状态转变成就绪状态,等待运 ...
yuyiming1986 评论(0) 有6186人浏览 2011-11-21 20:40

最近博客热门TAG

Java(141745) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54919) .net(54785) Web(54514) 工作(54118) Linux(50905) Oracle(49875) 应用服务器(43289) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36424)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics