摘要:
1,工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。 利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦 简单工厂: 简单工厂模式相当于是一个工厂中有各种产品,创建在一个类中,客户无 阅读全文
摘要:
http://ifeve.com/disruptor/ 阅读全文
摘要:
public class App3 { public static void main(String[] args) { Task task = new Task(); Thread t1 = new Thread(task); Thread t2 = new Thread(task); t1.st 阅读全文
摘要:
1 ,重入锁,也叫做递归锁。 指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。 ReentrantLock 和synchronized 都是重入锁,ReentrantLock 是轻量级锁,synchronized是重量级锁 也可以用ReentrantLock 来锁 阅读全文
摘要:
多线程不管是extends Thread 还是 implements Runnable 都是要重写run 方法来实现,这两种方式子线程都没有返回值。 如果要实现主线程对子线程的监听,让子线程有返回值,可以用implememts Callable<T> 方式: Future 模式的核心:去除了主函数的 阅读全文
摘要:
什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即 阅读全文
摘要:
队列:主要遵循先进先出的原则 阻塞式队列: 入列(存元素进队列)阻塞式队列,如果超出队列的总数,这时候会进行等待(阻塞) 出列(从队列获取元素)阻塞式队列,如果队列为空的情况下,这时候会进行等待(阻塞) 非阻塞队列:ConcurrentLinkedQueue 阻塞式队列:BlockingQueue 阅读全文
摘要:
1,接口的方法没有方法体(JDK1.8之前),JDK1.8之后也会有默认的方法体,而抽象类可以有非抽象的方法,有方法体(非抽象方法) 2,接口的方法的访问修饰符都是public,抽象类的抽象方法可以有public、protected和default这些修饰符 3,抽象类中可以有普通成员变量,接口中没 阅读全文
摘要:
1,String 是不可变类 immutable 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:八大包装类和String等。 可变类:相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。 以Stri 阅读全文
摘要:
wait: 必须暂定当前正在执行的线程,并释放资源锁,让其他线程可以有机会运行 notify/notifyall: 唤醒因锁池中的线程,使之运行 对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。 sleep()方法导致了程序暂停执 阅读全文