摘要:
什么是httpclient HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身 阅读全文
摘要:
J.U.C一,AbstractQueuedSynchronizer -AQS1.设计使用Node实现FIFO队列,可以用于构建锁或者其他同步装置的基础框架利用一个int类型表示状态 在AQS类中有一个叫waitStatus的成员变量,基于AQS有一个同步组件叫ReentrantLock,在这个组件中status表示 获取锁的线程数。比如:status=0,表示还没有线程获取锁。stat... 阅读全文
摘要:
线程池一,new Thread 弊端每次new Thread新建对象,性能差线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多的系统资源导致死机或OMM缺少更多功能,如更多执行,定期执行,线程中断二,线程池的好处重用存在的线程,减少对象的创建和消亡的开销,新能好可以有效的控制最大并发线 阅读全文
摘要:
线程封闭一,什么是线程封闭把对象封装到一个线程里,只有一个线程能看到。这样就算这个对象不是线程安全的,也不会出现线程安全问题一,实现线程封闭的方法Ad-hoc线程封闭:程序控制实现,最糟糕,忽略堆栈封闭:局部变量,无并发问题 多个线程访问一个方法时,方法中的局部变量会被拷贝一份到线程的栈中,所以局部变量是不会被多个线程访问的, 也就不会出现并发问题了。能用局部变量的时候,就不用全局变量... 阅读全文
摘要:
不可变对象一,不可变对象的需要满足的条件1.对象创建以后其状态就不能修改2.对象的所有域都是final类型3.对象是正确创建的(对象创建期间,this引用没有逸出)二,可以采用的方式:1.将类设置为final,该类不能被继承2.将所有的成员声明为私有的,这样就不运行直接访问这些成员3.对变量不提供setter方法,将所有可变的成员声明为final,这样只能对他们赋值一次,通过构造器初始化所有成员,... 阅读全文
摘要:
2.饿汉模式优化 3.懒汉模式1 4.懒汉模式2 5.懒汉模式3 6.懒汉模式4 7.枚举模式 阅读全文
摘要:
一,线程安全性1.定义:当多个线程访问某个类时,不管运行时环境采用 任何调度方式 或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出 正确的行为,那么称这个类是线程安全的2.线程安全性体现在三个方面:原子性:提供了互斥访问,同一时刻只能有一个线程来对他操作可见性:一个线程对主内存的修改可以及时被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指... 阅读全文