先上一个例子,目的是输出一百次condition.await() wake up,代码如下
[code]
final ReentrantLock lock = new ReentrantLock();
final Condition condition = lock.newCondition();
Thread th = new Thread(new Runnable() {

@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i < 100; i++) {
lock.lock();
try {
condition.signal();
} finally {
lock.unlock();
}
}
}
});
th.start();
for (int i = 0; i < 100; i++) {
lock.lock();
try {
condition.await();
System.out.println("condition.await() wake up " + i);
} finally {
lock.unlock();
}
}
System.out.println("done!");
[/code]

- 阅读剩余部分 -

Java线程的阻塞状态,共有三种:BLOCKED, WAITING, TIMED_WAITING
对于导致这三种状态的成因,源码里有明确的说明。
[code]
/**
* Thread state for a thread blocked waiting for a monitor lock.
* A thread in the blocked state is waiting for a monitor lock
* to enter a synchronized block/method or
* reenter a synchronized block/method after calling
* {@link Object#wait() Object.wait}.
*/
BLOCKED,
[/code]
简述:BLOCKED就是等待进入synchronized块或wait被唤醒后返回synchronized块时的等待。

- 阅读剩余部分 -

用新端口启了一个mysql实例,用mysql的-P参数指定新端口,一直连的还是老的,百思不得其解。
偶然一天心血来潮,指定-h127.0.0.1,发现-P参数有效了。
结论:mysql自带的client(也就是mysql命令),在没指定-h时,-P参数无效。

在mysql --help里,未找到任何这种使用限制的描述。

- 阅读剩余部分 -

转载大牛的文章,写得非常棒。简单改了一下里面的小错误(实战的第5项有误),增加一些自己心得。
转载地址:http://blog.chinaunix.net/uid-20639775-id-3254611.html

正文部分如下

MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙述mysql主从的管理。
MYSQL主从同步的作用
(1) 数据分布
(2) 负载平衡(load balancing)
(3) 备份
(4) 高可用性(high availability)和容错

- 阅读剩余部分 -