- 博客(14)
- 收藏
- 关注
java 之多线程 LOCK实现(四)
接lock实现(三),由于peterson lock实现只能解决双线程同步互斥,那么N线程互斥 如何做呢?看下文。。。设计一个Level(N)的N个过滤空间,每个线程到达临界区需要走过所有的Level空间。所有的level 都必须满足以下两个条件: 1)至少有一个尝试进入Level(N)的线程会成功。 2)如果有多个线程尝试进入一个Leven(N),则至少有一个会被阻塞(...
2012-09-06 12:14:10
159
java 之多线程 LOCK实现(三)
接上节,为了解决一、二两节出现的缺陷,Peterson锁实现出现了,这是一个经典的双线程锁实现,请看代码:public class PertersonLockImpl implements Lock { private volatile boolean[] b = new boolean[2]; private volatile int flag = 0;...
2012-09-05 10:26:24
139
java 之多线程 LOCK实现(二)
接上一节,回顾一下,锁的实现有一个缺陷:两个线程交替执行会死锁。现在我们来做另外一个双线程锁实现来解决这个缺陷:public class ThreadLockImpl2 { private volatile int flag = 0; public void lock() { int threadId = ThreadUtil.getCurre...
2012-09-05 10:01:11
131
原创 mysql sql 长度限制
最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设置是1M,这就造成sql语句执行失败。于是把mysql的配置文件(my.ini)中的max_allowed_packet = 6M变大,问题就解决了。...
2012-09-04 16:06:05
351
原创 java 之多线程 LOCK实现(一)
一,前言 众所周知,一个可靠的多线程程序必须要能够坐到无死锁,无饥饿。 什么叫做无饥饿:如果一个线程需要获得一个Lock,那么这个操作在一个有限时间内最终会获得成功(不论时间长短)。那么我们现在就来实现只有两个线程的Lock。 二,Lock接口 public interface Lock{ public void lock(); public vo...
2012-09-04 10:31:16
129
原创 java 开启jmx
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8765 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
2011-10-26 11:10:38
258
原创 Linux之管道与后台进程shell
当后台命令使用管道符,并采用nohup命令时,必须对管道符后的每个命令分别使用nohup命令,如nohup ls -R|nohup grep dt>/tmp/lsdt.out&如果没有这样正确使用nohup命令时,当用户推出系统时,没有带hohup命令的进程将会被迫结束,管道符也不起作用。...
2011-08-18 14:35:10
942
原创 oracle 之pctfree&pctused
pctfree:在块上保留多少空间用以以后数据的更新。如果自由空间的百分比高于pctfree的设置,那么这个块就是“自由块”。默认值为10%。pctused:如果在块上插入数据,然后又经过删除数据,这个时候如果块数据占有块空间的百分比低于pctused,那么这个块就是“自由块”。这两个参数的使用 如果创建表的时候指定pctfree=20%,oracle会在这个表的data segm...
2011-08-18 14:30:07
133
原创 网络协议号
IP协议号大全(网络协议号) PROTOCOL NUMBERS(last updated 08 September 2005)In the Internet Protocol version 4 (IPv4) [RFC791] there is a field,called "Protocol", to identify the next level protocol. This i...
2011-06-16 11:29:16
219
原创 oracle之pctfree与pctused
pctfree:在块上保留多少空间用以以后数据的更新。如果自由空间的百分比高于pctfree的设置,那么这个块就是“自由块”。默认值为10%。pctused:如果在块上插入数据,然后又经过删除数据,这个时候如果块数据占有块空间的百分比低于pctused,那么这个块就是“自由块”。这两个参数的使用 如果创建表的时候指定pctfree=20%,oracle会在这个表的data segm...
2011-06-04 08:59:21
121
原创 ORACLE手动管理段空间之freelists
freelists:存放着可以使用的块。在插入数据的时候,oracle首先去freelists中查看是否有可以使用的块,如果没有,那么提高 高水位线HWM(不得已而为之)。如果有多个session同时对一张表进行插入,每个连接都会查看freelists,所以freelists为1的时候有多个用户需要进行插入或者删除,这个时候就会遇到性能瓶颈,用statspack进行查看的时候就会出现buffer ...
2011-06-02 23:04:03
460
原创 oracle之varchar2
如果国家字符集为单字节字符,那么varchar2(20)默认表示能存储20个字节的字符(即默认为varchar2(20 byte)),varchar2(20 char)表示能存储20个字符。如果国家字符集为UTF-8类似的多字节字符,那么varchar2(20)存储不了20个字符,只有varchar2(20 char)才能存储20个字符。。还可以使用会话参数或系统参数NLS_LENGT...
2011-05-31 21:22:04
396
原创 对象值域 equals 比较 写法
field == null ? o.field == null : field.equals(o.field);如果field与o.field通常是相同的对象引用,那么更高的效率写法:field == o.field || (field != null && field.equals(o.field))1.短路提高效率。2.直接判断对象引用 == 提高效率...
2011-04-15 13:13:39
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人