分类归档:语言学习

MySQL错误处理汇总

MySQL无法启动

MySQL启动时提示Timeout error occurred trying to start MySQL Daemon

解决办法:执行/usr/bin/mysql_install_db,修复下就OK了.

MySQL数据表无法使用

启动后发现所有的数据表都无法使用,查看MySQL异常日志,发现如下log

原因:这个报错的大意是,内存基本耗尽,没有再可以分配的内存.

解决办法:查看/etc/my.cnf,找innodb_buffer_pool_size,发现设值已经超过了系统总内存,然后重新设置为系统内存1半,即innodb_buffer_pool_size = 6144M 重启MySQL就OK了.

to be continued…

Java volatile详解

在Java中,为了保证多线程读写数据时保证数据的一致性,可以采用两种方式:

同步

如用synchronized关键字,或者使用锁对象.

volatile

使用volatile关键字
用一句话概括volatile,它能够使变量在值发生改变时能尽快地让其他线程知道.

volatile详解

首先我们要先意识到有这样的现象,编译器为了加快程序运行的速度,对一些变量的写操作会先在寄存器或者是CPU缓存上进行,最后才写入内存.
而在这个过程,变量的新值对其他线程是不可见的.而volatile的作用就是使它修饰的变量的读写操作都必须在内存中进行!
阅读全文…