java sleep和wait的区别和联系

1 object monitor

java的每个对象都有一个固有的lock,这个lock就称为object monitor。

比如method,即方法的方法,它也是有一个monitor。所有,如果一个方法加了synchronized关键字的话,一个线程进入这个方法其实是获得了这个方法的monitor。

同样,我们可以使用当前对象的monitor,即this关键字。

同样,我们可以自己创建一个Object object对象,然后syncronized(object),因为每一个对象都有一个object monitor,就是为了方便线程间同步的。

所以说,java是一切皆是对象,一切皆有锁。

2

原文地址:https://www.cnblogs.com/hustdc/p/8560919.html

时间: 03-13

java sleep和wait的区别和联系的相关文章

java中ArrayList 、LinkList区别

转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.LinkedList,但是最好的方式还是看源代码.其实ArrayList就是一个动态数组,LinkedList是一个链表.  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.     2.对于随机访问get和set,ArrayList优于LinkedLis

Java——全局变量与局部变量的区别

在Java程序中,会根据变量的有效范围将变量分为成员变量和局部变量,通常类的属性成为累的全局变量(成员变量),成员变量在整个类中都有效,在类的方法体中定义的变量称为局部变量,局部变量只在当前代码体中有效不能用于类的其他方法中.成员变量可与局部变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效,只取局部变量的值.举个例子: 1 public class Man{ 2 static int age=20; 3 public static void main(String[] ar

hadoop中Text类 与 java中String类的区别

hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号: 字符编码:是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对.即在符号集

POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别

POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200. JVM(Java Virtual Machine),即Java虚拟机 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修

【转】Java中equals和==的区别

[转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false. JAVA当中所有的类都是继承于Object这个基类的,

Java进阶(三十五)java int与integer的区别

Java进阶(三十五)java int与integer的区别 前言 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象. 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1; Integer i= new In

java int与integer的区别

java int与integer的区别 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1:Integer i= new Integer(1);(要把inte

java基础之& 和 && 的区别

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false. &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(""))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerExceptio

Java 中 == 和 equal 的区别 (String)

String s1 = "abcd"; String s2 = "cdfe"; s1 == s2; // 比较s1和s2这2个对象的地址,如果一样,则为true,否则为false s1.equal(s2); //比较s1和s2的内容,如果相同则为true Java 中 == 和 equal 的区别 (String),布布扣,bubuko.com

php和java数据类型和表达式的区别

前段时间学习了下php觉得挺简单的,不过这只是相对java而言,php简单了但是还是很有很多细节问题需要注意,为了顺便巩固下java基础知识,我把java和php做了对比.这次比较的是数据类型和运算符. 一.数据类型 先来看看php的数据类型划分: 基本数据类型:整数类型,小数类型[不分单精度和双精度],boolean类型,字符串 复合数据类型:数组.对象 特殊数据类型:NULL.资源类型 下面是java数据类型划分 基本数据类型:数值类型(整数类型[byte,short,int,long] 浮