概述偏向锁是JDK 1.6提出的一种锁优化方式,起核心思想是如果程序没有竞争,则取消之前已经取得锁的线程的同步操作。也就是说,某一个锁被一个线程获取之后,便进入了偏向锁模式,当该线程再次请求这个锁时,就无需再进行相关的同步操作,从而节省了操作时间。但是如果在此期间,有其他线程申请了这个锁,则退出偏向锁模式。在JVM中可以使用-XX:+UseBiasedLocking设置启用偏向锁。实验看如下的代码:...
分类:
编程语言 时间:
2015-06-05 15:52:16
阅读次数:
190
早就听说lock tables和unlock tables这两个命令,从字面也大体知道,前者的作用是锁定表,后者的作用是解除锁定。但是具体如何用,怎么用,不太清楚。今天详细研究了下,总算搞明白了2者的用法。lock tables 命令是为当前线程锁定表.这里有2种类型的锁定,一种是读锁定,用命令 l...
分类:
数据库 时间:
2015-05-31 22:54:37
阅读次数:
233
http://www.ibm.com/developerworks/cn/linux/thread/posix_thread3/#1
当多线程想要等待某一条件成立时,用pthread_cond_wait来阻塞线程,
首先明确wait的作用,pthread的wait与lock都可以阻塞线程等待“条件”成立,区别在于:
wait之后的发送来的条件成立(pthread_cond_broad...
分类:
编程语言 时间:
2015-05-27 21:10:13
阅读次数:
130
同步函数的是this,静态同步函数的锁是Class.class,要使同步代码块和静态同步函数都能执行相同的锁,则需要使用Class.class作为锁的对象。回顾:1.恶汉式:Class Single{ private Single single = new Single(); publi...
分类:
编程语言 时间:
2015-05-22 00:31:10
阅读次数:
128
1、互斥锁原理
在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。
互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源。可以保证以下三点:
(1)原子性:把一个互斥量锁定为一个原子操作,这意味着操作系统(或pthread函数库)保证了如果一个线程锁定了一个互斥量,没有其他线程在同一时间可以成功锁定这个互斥量。
(2)唯一性:如果一个线程锁定了一个互斥量,在它解除锁...
分类:
其他好文 时间:
2015-05-21 22:42:10
阅读次数:
178
原文链接 作者:Jakob
Jenkov 译者:申章 校对:丁一
java中死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。
例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了。线程1永远得不到B,线程2也永远得不到A,并且它们永远也不会知道发生了...
分类:
编程语言 时间:
2015-05-13 19:50:04
阅读次数:
150
原文链接作者:Jakob Jenkov译者:申章校对:丁一java中死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生...
分类:
编程语言 时间:
2015-05-13 19:19:33
阅读次数:
126
作为初级程序员面试或者技术学习有时会盲目,没头绪,其实回头看一下,大体的方面还是比较清楚的。1、java方面(1)java语法(2)数据结构,8种基本数据类型、String、StringBuffer、StringBuild,map、collection(3)多线程、锁、单例模式、线程池(4)消息机制(5)代理、设计模式(6)..
分类:
编程语言 时间:
2015-05-05 06:37:31
阅读次数:
145
http://jameswxx.iteye.com/blog/806968最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣。已经拟好了提纲,大概分为这几个主题: java线程安全,java垃圾收集,java并发包详细介绍,java profile和jvm性能调优 。慢...
分类:
编程语言 时间:
2015-04-30 14:00:45
阅读次数:
162