5.1 同步的Collections
JDK中,同步的Collections包含Vector和Hashtable,以及从1.2之后加入的Collections.synchronizedXXX 工厂构造函数生成的类。
这些类都内置了同步措施,确保任何时间只有一个线程能访问public方法。
然而这有一些例外:下标迭代、iteration迭代、foreach、next()、pre()等都是“快速失效的”,即有可能在你调用的过程中其他线程执行了修改,导致抛出异常。
因此,下面只是[......]
5.1 同步的Collections
JDK中,同步的Collections包含Vector和Hashtable,以及从1.2之后加入的Collections.synchronizedXXX 工厂构造函数生成的类。
这些类都内置了同步措施,确保任何时间只有一个线程能访问public方法。
然而这有一些例外:下标迭代、iteration迭代、foreach、next()、pre()等都是“快速失效的”,即有可能在你调用的过程中其他线程执行了修改,导致抛出异常。
因此,下面只是[......]
第四章 组成(线程安全的)对象
4.1 设计线程安全的类
设计一个线程安全的类包含如下准则:
1、识别出哪些变量将改变类的状态
2、识别出约束状态变量的不变条件
3、建立起规则,用于管理并发访问状态的状态
如果一个对象的field都是由基本数据类型(int long等)组成的,则所有这些field就构成了对象的全部状态。
如果对象的field中还包含引用,则对象状态还要包括这些引用变量中的隐含数据。例如LinkedList中的Node。
为了方便后人阅[......]
第三章 共享对象
在有的业务场景,不仅需要线程安全读写对象,还要让其他线程得知对象状态的更改,这必须由线程同步机制来完成。
3.1 可见性
当某个变量改变时,如果不运用线程同步机制,将无法确保另外的读线程能马上看到修改的结果。
例如下面的代码:
public class NoVisibility {
private static boolean ready;
private static int number;
private static c[......]
第二章 线程安全
2.1 什么是线程安全
定义1:无状态的对象一定是现成安全的。
@ThreadSafe
public class StatelessFactorizer implements Servlet {
public void service(ServletRequest req, ServletResponse resp) {
BigInteger i = extractFromRequest(req);
BigInteger[......]
1、如何让查询显示出正常的(key-value模式)格式
show table status like '%user%' \G
这个\G可以让数据格式按照比较好看的样式显示出来,恩。
2、关于MyISAM
表锁定,但支持select的时候inert??
修复方法:
check table user;
repair table user;
索引的时候对于text和bolb只支持前500个字符。
支持Delay key write,即主键变动不会马上写入磁盘[......]