2013年10月17日

摘要: JNI是Java native interface的简写,可以译作Java原生接口。Java可以通过JNI调用C/C++的库,这对于那些对性能要求比较高的Java程序无疑是一个福音。 使用JNI也是有代价。大家都知道JAVA程序是运行在JVM之上的,可以做到平台无关。但是如果Java程序通过JNI调用了原生的代码(比如c/c++等),则Java程序就丧失了平台无关性。最起码需要重新编译原生代码部分。所以应用JNI需要好好权衡,不到万不得已,请不要选择JNI,可以选择替代方案,比如TCP/IP进行进程间通讯等等。这也是为什么谷歌的Android平台的底层虽然用JNI实现,但是他不建议开发人员用. 阅读全文
posted @ 2013-10-17 22:09 Brill 阅读(1528) 评论(0) 推荐(0)
摘要: 现在用linux的朋友越来越多了,前几天就有两个朋友问我linux下怎么配置java环境,我想还有很多朋友想了解学习这方面的东西,就写一个完全一点的linux java环境配置吧,希望对大家有帮助。一. 下载jdk5.0 for linux 到sun的主页 http://java.sun.com/j2se/1.5.0/download.jsp 下载jdk安装文件jdk-1_5_0_05-linux-i586.bin二. 解压安装jdk 在shell终端下进入jdk-1_5_0_05-linux-i586.bin文件所在目录,执行命令 ./jdk-1_5_0_05-linux-i586.b... 阅读全文
posted @ 2013-10-17 13:54 Brill 阅读(286) 评论(0) 推荐(0)

2013年9月3日

摘要: 转自http://blog.csdn.net/wangya216/article/details/5187682 装上SI后,我的缩进一直有问题,后来发现是Tab和空格的问题,1Tab比4个空格大很多,导致代码显示很乱,从网上搜了很多文章,主流的解决方法如下,但是试了一下,发现不管用: 写代码时候很头痛的问题是在SIS界面里,即使设置好了Tab Width=4,按四个空格所显示的缩进,和按TAB键的缩进位置是不同的,后者要更靠里面三个字符的位置,但在左下角看到的Col=5都是一样的。这样 的代码在SIS里看了不对齐,到PB里看了却是对齐的。而SIS里面看着对其的代码,在PB里面会差三格。现.. 阅读全文
posted @ 2013-09-03 09:48 Brill 阅读(720) 评论(0) 推荐(0)

2013年8月6日

摘要: 学习PV操作之前,我们首先来了解两个很基础的概念:同步、互斥:同步:其实说同步还不如说”协作“,就是我们的目标只有一个,我们奔着同一个目标去的,都是在大家的努力下共同完成这么一件事情。还是比较容易理解的吧。不见得太难。互斥:借用别人的一句话“千军万马过独木桥”,很通俗的一句话,就把咱们这个概念表达的淋漓尽致,就好比有一个大部队来到独木桥这,但是必须排好队,一个一个来;其实现实生活中,还有一个很好的例子可以说明这个互斥的概念,比如打印机,打印机这个工具就非常好的体现了互斥的概念,打印机一旦被别人占用了,那无乱你有多着急,都只能等着,对吧。其实借用别人的话或者资料或者工具来让咱们的学习更加轻松,为 阅读全文
posted @ 2013-08-06 00:01 Brill 阅读(309) 评论(0) 推荐(0)

2013年8月5日

摘要: futex(快速用户区互斥的简称)是一个在Linux上实现锁定和构建高级抽象锁如信号量和POSIX互斥的基本工具。它们第一次出现在内核开发的2.5.7版;其语义在2.5.40固定下来,然后在2.6.x系列稳定版内核中出现。Futex 是由Hubertus Franke(IBM Thomas J. Watson 研究中心), Matthew Kirkwood,Ingo Molnar(Red Hat)和 Rusty Russell(IBM Linux 技术中心)等人创建的。Futex 由一块能够被多个进程共享的内存空间(一个对齐后的整型变量)组成;这个整型变量的值能够通过汇编语言调用CPU提供的原 阅读全文
posted @ 2013-08-05 19:42 Brill 阅读(2882) 评论(0) 推荐(0)

2013年7月30日

摘要: 当对同一文件句柄(在Windows下)或是文件描述符(在Linux下)进行随机读写操作时,会存在文件指针的定位与读/写俩个步骤,但由于这不是一个原子操作,就可能产生如下问题:进程A对某文件先定位到 f1 处,然后被中断,然后进程B对同一文件定位到 f2 处,然后被中断,进程A再次执行,从文件的当前指针处开始读或是写,于是这便产生了不是期望的结果了。(这里要注意,对同一文件的俩次打开,得到的将是俩个不同的句柄或是描述符,所以不用担心这种情况会出问题)解决办法: 在Linux下,pread函数就好像是专门为上面的问题服务的,它本身就是原子性的操作,定位文件指针与读操作一气呵成,而且读操作并不... 阅读全文
posted @ 2013-07-30 20:23 Brill 阅读(15212) 评论(0) 推荐(0)

2013年7月29日

摘要: 在Linux的源代码中,有很多C语言的函数中嵌入一段汇编语言程序段,这就是gcc提供的“asm”功能,例如在include/asm-i386/system.h中定义的,读控制寄存器CR0的一个宏read_cr0(): #define read_cr0() ({ \unsignedint __dummy; \__asm__( \"movl %%cr0,%0\n\t" \:"=r" (__dummy)); \__dummy; \}) 这种形式看起来比较陌生,这是因为这不是标准C所定义的形式,而是gcc对C语言的扩充。其中__dummy为C函数所定义的变量;关 阅读全文
posted @ 2013-07-29 21:28 Brill 阅读(1051) 评论(0) 推荐(0)

导航