注意:所有文章除特别说明外,转载请注明出处.
[TOC]
第一章 并发编程的挑战
1.1 上下文切换
时间片:CPU通过每个线程分配CPU时间片来实现单核处理器多线程执行代码。时间片是分配给每一个线程的时间,因为很短,通常是几十毫秒。所以会有多个线程同时执行的错觉。
注意:当并发执行累加操作不超过百万次时,速度会比串行执行累加操作慢。这是因为线程有创建和上下文切换的开销。
注意:所有文章除特别说明外,转载请注明出处.
[TOC]
提示:方法中变量不存在非线程安全问题,永远都是线程安全的。这是方法内部变量的私有属性造成的。
关键字 synchronize 拥有锁重入的功能,也就是在使用 synchronize 时,当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁的。
注意:所有文章除特别说明外,转载请注明出处.
[TOC]
Java堆是用来存储Java对象的内存区域,堆的大小在JVM启动时就一次向操作系统申请完成,通过-Xmx | -Xms两个选项控制大小。一旦分配完成那么堆的大小就固定,不能在内存不够时再向操作系统重新申请。不能在内存空闲时将多余的空间交还给操作系统。
-Xmx 表示堆的最大大小
-Xms 表示初始大小
提示:Java堆内存空间的管理由JVM控制,对象创建由Java应用程序控制,但是对象所占的空间释放由管理堆内存的垃圾收集器完成。
注意:所有文章除特别说明外,转载请注明出处.
[TOC]
门面设计模式,将一个东西封装成一个门面好与人家更容易的进行交流,如同一个国家的外交部一样。这重模式主要用在一个大型系统中有多个子系统时,这时有多个子系统肯定需要进行通信。但此时不能将每个子系统的内部数据过多的暴露给其它系统,否则没有必要设计子系统,所以此时通过设计门面。
注意:所有文章除特别说明外,转载请注明出处.
[TOC]
Session和Cookie的作用都是为了保持访问用户与后端服务器的交互状态。
Cookie在传递信息时,随着Cookie个数的增多和访问量的增加,它占用的网络带宽也很大。
Session不容易在多台服务器之间共享。