摘要:
1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开 阅读全文
摘要:
1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? Java ?1234567new Thread(new Runnable() { @Overridepublic void run() {// TODO Auto generated method stub}}). 阅读全文
摘要:
ReenTrantLock可重入锁(和synchronized的区别)总结 可重入性: 从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的 阅读全文
摘要:
1. 用什么关键字修饰同步方法 ? 用synchronized关键字修饰同步方法 2. 同步有几种实现方法,都是什么?分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个 阅读全文
摘要:
UML简要类图关系: 下面详细看一下三者的区别: Executor vs ExecutorService vs Executors 正如上面所说,这三者均是 Executor 框架中的一部分。Java 开发者很有必要学习和理解他们,以便更高效的使用 Java 提供的不同类型的线程池。总结一下这三者间 阅读全文
摘要:
互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。 同步其实已经实现了互斥,所以同步是一种更为复杂的互斥。 互斥是一种特殊的同步。 所谓互斥,就是 阅读全文
摘要:
这些方法存在于同步中; 使用这些方法必须标识同步所属的锁; 锁可以是任意对象,所以任意对象调用方法一定定义在Object类中。 Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、noti 阅读全文
摘要:
Copy On Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 阅读全文
摘要:
前言 ThreadLocal的作用就是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。 但是如果滥用ThreadLocal,就可能会导致内存泄漏。 下面,我们将围绕三个方面来分析ThreadLocal 内存泄漏的问题 Threa 阅读全文
摘要:
在Java多线程中,可以使用synchronized关键字实现线程之间的同步互斥,在jdk1.5后新增的ReentrantLock类同样可达到此效果,且在使用上比synchronized更加灵活。观察ReentrantLock类可以发现其实现了Lock接口public class Reentrant 阅读全文