
Java多线程
Hsuxu
程序猿
展开
-
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? ?
对象的synchronized方法不能进入了,但它的其他非synchronized方法还是可以访问的对每一个class只有一个thread可以执行synchronized static method。每个class的instance只有一个thread可以执行synchronized method。任意数目的thread可以执行非synchronized method——不管是否是static转载 2013-02-18 20:42:01 · 3360 阅读 · 0 评论 -
一个简单的Java死锁示例
在实际编程中,要尽量避免出现死锁的情况,但是让你故意写一个死锁的程序时似乎也不太简单(有公司会出这样的面试题),以下是一个简单的死锁例子,程序说明都写着类的注释里了,有点罗嗦,但是应该也还是表述清楚了的。[code=java]/*** 一个简单的死锁类* @author iStar* 当类的对象flag=1时(T1),先锁定O1,睡眠500毫秒,然后锁定O2;* 而转载 2013-02-19 13:34:53 · 24963 阅读 · 12 评论 -
java线程系列---Runnable和Thread的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: package org.thread.demo; class MyThread转载 2013-02-18 19:56:26 · 1095 阅读 · 1 评论 -
Java 条件变量
条件变量是Java5线程中很重要的一个概念,顾名思义,条件变量就是表示条件的一种变量。但是必须说明,这里的条件是没有实际含义的,仅仅是个标记而已,并且条件的含义往往通过代码来赋予其含义。 这里的条件和普通意义上的条件表达式有着天壤之别。 条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对转载 2013-02-19 17:14:47 · 3320 阅读 · 0 评论 -
ThreadLocal与synchronized
ThreadLocal与synchronized Java良好的支持多线程。使用java,我们可以很轻松的编程一个多线程程序。但是使用多线程可能会引起并发访问的问题。synchronized和ThreadLocal都是用来解决多线程并发访问的问题。大家可能对synchronized较为熟悉,而对ThreadLocal就要陌生得多了。 并发问题。当一个对象被两个线程同时访问时,可能有一个线程转载 2013-02-19 21:34:15 · 1184 阅读 · 0 评论 -
Java偏向锁实现原理(Biased Locking)
阅读本文的读者,需要对Java轻量级锁有一定的了解,知道lock record, mark word之类的名词。可以参考我的一篇博文:Java轻量级锁原理详解(Lightweight Locking)Java偏向锁(Biased Locking)是Java6引入的一项多线程优化。它通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行性能。轻量级锁也是一种多线程优化,它与偏向锁的区别在转载 2013-07-25 18:44:49 · 6115 阅读 · 0 评论 -
Java轻量级锁原理详解(Lightweight Locking)
大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的性能往往不如人意。原因是,monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖操作系统互斥(mutex)来实现的。互斥是一种会导致线程挂起,并在较短的时间内又需要重新调度回原线程的,较为消耗资源的操作。为了优化Java的Lock机制,从Java6开始引入了轻量级锁的概转载 2013-07-25 18:45:18 · 4802 阅读 · 0 评论 -
深入JVM锁机制
目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家可能转载 2013-07-25 18:49:01 · 2513 阅读 · 0 评论