持续更新。。。。。。
1.ANSI编码和Unicode编码的区别
参考:http://www.360doc.com/content/10/0712/17/11192_38530531.shtml
ANSI:ANSI编码常见的就是windows的txt文件(默认的编码格式),ANSI算是压缩编码(与Unicode相比),遇到ASCII采用单字节表示,遇到中文等,用双字节表示,比如:输入“宋体ABC(回车)”(windows换行也会保存,linux/unix不会),编码格式是这样的。
读取是一次读一个字节,判断第一位是不是1,是1就把两个字节拼成一个汉字。如果是0就说明是ASCII,直接去找。比如“宋”【11001011】【11001110】,“A”【01000001】 ,可以很容易看出。
Unicode:XML,java程序语言,最新的操作系统都是用的Unicode编码。它不管汉字还是ASCII都是用双字节表示,还有FF FE头部两个字节。编码格式:
windows(Mac OS先低后高)读取是从高8位开始读,比如“宋”先读5B再度8B(后面为高位),如果读高8位是00说明是ASCII。
2.自旋锁和互斥锁的区别
互斥锁
- 如果发现其他线程正在执行锁定的代码,线程会进入休眠(就绪状态),等其他线程时间片打开锁后,线程会被唤醒执行。
自旋锁
- 如果发现有其他线程正在执行锁定的代码,线程会进入死循环(忙等)的方式(相当于阻塞了还在内存中),一直等待锁定的代码执行完成 自旋锁更适合执行不耗时的代码。