- 浏览: 218499 次
- 性别:
- 来自: 天津
最新评论
-
flychao88:
nothingismao 写道623deyingxiong 写 ...
nio与io的比较 -
李冰冰:
如果NIO单个线程处理业务逻辑,那么如果这个业务逻辑非常耗时, ...
nio与io的比较 -
wj_126mail:
IO是一个连接就创建一个线程来处理;NIO是一个线程在处理所有 ...
nio与io的比较 -
nothingismao:
623deyingxiong 写道wwj85523 写道 看完 ...
nio与io的比较 -
623deyingxiong:
wwj85523 写道
看完后我迷糊了,
IO一样可以一个线 ...
nio与io的比较
文章列表
一直在使用老的机器跑rhel5.2。始终觉得硬盘的io速度不够快。今天看的一篇文章讲到linux默认是关闭dma的,于是手动打开,速度确实快了不少
注意:/sbin/hdparm命令不支持SATA硬盘。
Linux下的32位I/O和DMA默认是关闭的。如果用的是16位I/O的话,就无法充分发挥电脑的性能。
如果要打开32位I/O和DMA,就需要以root身份进行设置。为了降低因出错而重启系统对文件系统的损害,最好以单用户模式进行。
首先,使用下面的命令检查硬盘驱动器的当前I/O情况:
[root@anima lwg]# /sbin/hdparm -t /dev/hda
/dev/hd ...
- 2008-11-16 17:06
- 浏览 1882
- 评论(0)
实现Serializable接口,编写地定义的针对transient field的加密处理方案。
package cxz.serial;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ObjectSaver {
public static void main(String[] args) throws Exception {
...
ObjectName namingName = new ObjectName("naming:type=rmiregistry");
mx4j.tools.naming.NamingService service = new mx4j.tools.naming.NamingService();
_mBeanServer.registerMBean(service, namingName);
_mBeanServer.setAttribute(namingName, new Attribute("Port", new Integ ...
指定编码器、解码器,并且利用ByteBuffer读写文件。
做个例子,以后编写程序的时候使用。
package cxz.net;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.FileChannel;
import java.nio.ch ...
- 2008-11-04 20:48
- 浏览 2687
- 评论(0)
毕业有一年多了,大学的时候上过网络课程,但我一直认为:网络技术是最难得了,让我觉得无所适从。大四毕业设计的时候是一个ftp服务器,让我对网络、套接字有了新的认识。还有sniffer工具,加深了我对网络的理解。
昨天遇到一个问题,我的朋友唐磊从事网络方面的工作,昨天在qq上聊到了一个工具,扫描一个网段的主机的所有的端口,以便发现些问题展开攻击。于是我就希望实现一个具有类似功能的工具。
在实现方面需要两个步骤:一个是先利用ping找到所有打开的主机,然后把结果记录下来,最后针对每个主机,对端口进行逐一的扫描。从功能上来说后者很容易用java实现,只要利用socket.connect就可以做到,但是如 ...
Object lock = new Object();
private void transactionCollision() throws InterruptedException {
Session session = HibernateSessionFactory.getSession();
User ben = (User)session.get(User.class, new Long(1));
new BranchThread().start();
synchronized (lock) {//Before being notify the obj ...
evict\clear的使用:
User usr = (User)session.get(User.class, new Long(1));
session.close();
usr.setNickName("james");
Session session2 = HibernateSessionFactory.getSessionFactory().openSession();
session2.beginTransaction();
User usr2 = (User)session2.get(User.class, ...
- 2008-09-13 22:14
- 浏览 1251
- 评论(0)
先说点题外话,下面这段代码让我觉得很惊讶:
session.beginTransaction();
User usr = (User)session.get(User.class, new Long(1));
usr.setNickName("c");
session.getTransaction().commit();
session.close();
基本上已经简单的不能再简单了,但让我惊讶的是:我并没有现实的调用session.update之类的东西,居然给我自动更新了...实在想不明白为什么。
答案:update操作的是在脱管状态的对象
...
session.beginTransaction();
User usr = (User)session.get(User.class, new Long(1));//如果调用load()就会引发异常。
session.getTransaction().commit();
session.close();
System.out.println(usr.getLogin());
如上面注释所示:load()采用的是lazy加载方式,也即是说并没有真正的去读取数据,二十当你需要的时候去获得。而如上代码所示:在第5行需要的时候session已经关闭,所以会引发异常, ...
- 2008-09-13 14:29
- 浏览 1509
- 评论(0)
package com.cxz.currency.test;
public class Testee implements Runnable {
Object lock = null;
public boolean runFlag = false;
public Testee(Object lock) {
this.lock = lock;
}
public void run() {
synchronized (lock) {
try {
if (!runFlag) {
lock.wait();
}
...
- 2008-08-08 21:20
- 浏览 1051
- 评论(0)
jakarta的commons中的digester是非常优秀的xml解析工具,这个工具提供了从
xml->javabean的映射。相较于传统的w3c、sax方式解析xml文档,digester的层次更高,适合更懒得家伙。
下面这个例子简单,就是一个简单的存储数据,xml文件由schema文件约束,映射到对应的javabean当中,当然功能还不是很完善,作用也不够通用。
schema文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www. ...
- 2008-07-23 14:54
- 浏览 3664
- 评论(2)
摘自:http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/CallableFuture.htm
package onlyfun.caterpillar;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
public class PrimeCallable implements Callable<int[]> {
private int max;
public PrimeCall ...
- 2008-07-18 13:59
- 浏览 1327
- 评论(0)
选自:java线程2e。
类似于jdk1.5中的reentrantlock实现。
package com.cxz.tools;
public class BusyFlag {
protected Thread busyFlag = null;
protected int busyCount = 0;
public synchronized void getBusyFlag() throws InterruptedException {
while (tryGetBusyFlag() == false) {
wait();
}
}
publ ...
- 2008-07-18 13:15
- 浏览 1199
- 评论(0)