摘要: 一、锁的原理 Java中每个对象都有一个内置锁,当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行的代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或在对象上同步。 当程序运行到synchronized同步方法或代码块时该对... 阅读全文
posted @ 2015-12-21 22:51 liurio 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 一 同步的概念 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。 例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。 MyRunnable.java 1 package Thread; 2 public class MyRunn... 阅读全文
posted @ 2015-12-21 21:59 liurio 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 线程调度是Java多线程的核心,只有好的调度,才能充分发挥系统的性能,提高程序的执行效率。 一、休眠 休眠的目的是使线程让出CPU的最简单做法,线程休眠的时候,会将CPU交给其他线程,以便轮换执行,休眠一定时间后,线程会苏醒,进入准备状态等待执行。线程的休眠方法是Thread.sleep(long 阅读全文
posted @ 2015-12-21 17:14 liurio 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: 线程可以创建6状态: New()新创建、Runnable(可运行)、Blocked(被阻塞)、 Waiting(等待)、Timed waiting(计时等待)、Terminated(被终止)1 新建线程 当用new操作符创建一个线程时,如new Thread(r),该线程还没有开始运行。这意味着... 阅读全文
posted @ 2015-12-21 16:53 liurio 阅读(347) 评论(0) 推荐(0) 编辑
摘要: interrupt方法可以用来请求终止线程。 当对一个线程调用interrupt方法时,线程的中断状态被置位。这时每个线程都有boolean标志。每个线程都应该不时的检查这个标志,以判断线程是否被中断。 要想弄清楚中断状态是否被置位,首先调用静态的Thread.currentThread方法... 阅读全文
posted @ 2015-12-21 16:23 liurio 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 一 基本概念 多任务:同一时刻运行多个程序的能力。每一个任务称为一个线程。可以同时运行一个以上线程的程序称为多线程程序。 Java编写程序都运行在在Java虚拟机(JVM)中,在JVM的内部,程序的多任务是通过线程来实现的。每用java命令启动一个java应用程序,就会启动一个JVM进程。在同一个J 阅读全文
posted @ 2015-12-21 12:52 liurio 阅读(2295) 评论(0) 推荐(1) 编辑
摘要: 1.HashMap的数据结构 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法——拉链法,... 阅读全文
posted @ 2015-12-21 10:08 liurio 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 集合框架总结: 1 Collection接口: 2 Set接口: 3 HashSet//对象必须实现hashCode方法,元素没有顺序呢,效率比LinkedHashSet高 4 LinkedHashSet//是HashSet的扩展,支持规则集内元素的排序,... 阅读全文
posted @ 2015-12-21 09:20 liurio 阅读(778) 评论(0) 推荐(0) 编辑