`
johnnyking
  • 浏览: 18490 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
接lock实现(三),由于peterson lock实现只能解决双线程同步互斥,那么N线程互斥 如何做呢?看下文。。。 设计一个Level(N)的N个过滤空间,每个线程到达临界区需要走过所有的Level空间。所有的level 都必须满足以下两个条件: ...
接上节,为了解决一、二两节出现的缺陷,Peterson锁实现出现了,这是一个经典的双线程锁实现,请看代码: public class PertersonLockImpl implements Lock { private volatile boolean[] b = new boolean[2]; private volatile int flag = 0; public void init() { b[0] = false; b[1] = false; } public void lock( ...
接上一节,回顾一下,锁的实现有一个缺陷:两个线程交替执行会死锁。现在我们来做另外一个双线程锁实现来解决这个缺陷: public class ThreadLockImpl2 { private volatile int flag = 0; public void lock() { int threadId = ThreadUtil.getCurrentId(); flag = threadId; /** * 如果没有另外一个线程重置flag,则等待。 **/ ...
最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设置是1M,这就造成sql语句执行失败。于是把mysql的配置文件(my.ini)中的max_allowed_packet = 6M变大,问题就解决了。
一,前言    众所周知,一个可靠的多线程程序必须要能够坐到无死锁,无饥饿。    什么叫做无饥饿:如果一个线程需要获得一个Lock,那么这个操作在一个有限时间内最终会获得成功(不论时间长短)。 那么我们现在就来实现只有两个线程的Lock。   二,Lock接口   public interface Lock{ public void lock(); public void unlock(); } 三,只有两个线程的Lock实现   public class TwoThreadLockImpl implements Lock { pr ...
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8765 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
当后台命令使用管道符,并采用nohup命令时,必须对管道符后的每个命令分别使用nohup命令,如 nohup ls -R|nohup grep dt>/tmp/lsdt.out& 如果没有这样正确使用nohup命令时,当用户推出系统时,没有带hohup命令的进程将会被迫结束,管道符也不起作用。
pctfree:在块上保留多少空间用以以后数据的更新。如果自由空间的百分比高于pctfree的设置,那么这个块就是“自由块”。默认值为10%。 pctused:如果在块上插入数据,然后又经过删除数据,这个时候如果块数据占有块空间的百分比低于pctused,那么这个块就是“自由块”。 这两个参数的使用   如果创建表的时候指定pctfree=20%,oracle会在这个表的
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 is an 8bit field.   In Internet Protocol version 6 (IPv6) [RFC1883] this fieldis called the ...
pctfree:在块上保留多少空间用以以后数据的更新。如果自由空间的百分比高于pctfree的设置,那么这个块就是“自由块”。默认值为10%。 pctused:如果在块上插入数据,然后又经过删除数据,这个时候如果块数据占有块空间的百分比低于pctused,那么这个块就是“自由块”。 这两个参数的使用   如果创建表的时候指定pctfree=20%,oracle会在这个表的
freelists:存放着可以使用的块。在插入数据的时候,oracle首先去freelists中查看是否有可以使用的块,如果没有,那么提高 高水位线HWM(不得已而为之)。如果有多个session同时对一张表进行插入,每个连接都会查看freelists,所以freelists为1的时候有多个用户需要进行插入或者删除,这个时候就会遇到性能瓶颈,用statspack进行查看的时候就会出现buffer busy waits比较大的问题,解决办法是把freelist调大,以解决等待空闲块问题。 alter table t storage(freelists 10)  另外一个办法:自动管理表 ...
如果国家字符集为单字节字符,那么varchar2(20)默认表示能存储20个字节的字符(即默认为varchar2(20 byte)), varchar2(20 char)表示能存储20个字符。 如果国家字符集为UTF-8类似的多字节字符,那么varchar2(20)存储不了20个字符,只有varchar2(20 char)才能存储20个字符。 。还可以使用会话参数或系统参数NLS_LENGTH_SEMANTICS 来修改默认行为,即把默认设置BYTE 改为 CHAR。 存储在数据库中时,varchar2类型最大只能存储4000个字节,但是在pl/sql变量中,varchar2能临时存放32KB ...
准备回重庆了,4年工作经验,不知道在重庆7.5K 是个什么水平,在重庆的童鞋出来吼吼。
field == null ? o.field == null : field.equals(o.field); 如果field与o.field通常是相同的对象引用,那么更高的效率写法: field == o.field || (field != null && field.equals(o.field)) 1.短路提高效率。 2.直接判断对象引用 == 提高效率 最先比较的域应该是最有可能不一致的域。
Global site tag (gtag.js) - Google Analytics