Stone的专栏

个人主页:http://njchenyi.googlepages.com/

陈轶ID:njchenyi
218870次访问,排名291好友0人,关注者15
学习经历
学校 香港科技大学
描述 信息工程
日期 2006-8-19 -- 2007-8-17
学历 硕士

学校 荷兰Fontys应用科学大学
描述 信息工程
日期 2002-9-1 -- 2006-7-4
学历 本科

工作经历
南京烽火通讯发展有限公司
2007.8 – 至今 中国移动企业代理服务器
 主要职责:
MAS2.0系统JAVA版平台:平台为模块提供了通讯,告警,跟踪,定时器接口,为模块读取参数配置,并为模块提供了一个基类。
性能统计模块:根据数据库中的各模块不同采集项配置实时监测各个模块的各项统计值,并存入数据库。并能对比设定的门限阀值,在超出阀值的时候发出告警信息。
性能统计辅助模块:因为系统设计的问题,某些性能采集项无法从现有模块中获取,此模块作为修能统计的辅助模块针对无法获取的性能采集项做了特殊处理,供性能统计模块采集。
参与了性能统计相关数据库的设计,更改,维护
 主要应用技术:
1. Java—JDBC,JAVA多线程,Java中部分类库(如io、util,concurrent等)等技术
2. XML解析
3. 数据库—MySQL
njchenyi的文章
原创 196 篇
翻译 1 篇
转载 55 篇
评论 68 篇
njchenyi的公告
MSN:njchenyi@hotmail.com Gmail:njchenyi@gmail.com 我的QQ:24726542
最近评论
lliiqiang:javatalk.jar在什么地方
elong:国内最专业的生物实验定时器定点生产基地


生物实验计时器在生物实验室的教学、生产和实验项目中都有广泛应用,是科研实验工作者的好帮手!

实验室中苛刻的工作环境和生物实验精确严谨的工作特性,对生物计时器产品有高精确性,高稳定性,高易用性和高耐用性等方面的要求。品质优良的实验计时仪器能够帮助科研工作者提高工作效率,在应付复杂频密的实验应用工……
LEON:谢谢,我也遇到了只有程序运行时才能储存的问题,按照楼主说的,果然好用了,太感谢了~~~
无聊:这个你也放上来啊?弄点有水平的
Jason:感谢。
不知道为什么,我只有启动900端口的时候才能成功,我用1234和9999运行server端的时候就报不能连到900端口的错误,请指点。
不知道是不是和我的JDK有关系
文章分类
收藏
    相册
    定息贷款
    多边形裁剪
    图片
    个人链接
    MSN Space
    个人主页
    个人相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 JAVA定时器收藏

    新一篇: JAVA内存溢出 | 旧一篇: WURFL的使用

    用JAVA写了一个定时器类,此类作为一个线程运行,包含了一个队列存放定时器消息,通过比较定时器的触发时间,俺触发事件先后顺序排列队列。

    import java.util.concurrent.*;
    import java.util.*;

    public class TimerTask implements Runnable {
        
    /**定时器事件队列*/
        PriorityBlockingQueue
    <TimerSlot> queue_ =  new PriorityBlockingQueue<TimerSlot>(2048);
        
    /** Creates a new instance of TimerTask */
        
    public TimerTask() {
        }

        
        
    /**设置定时器,并放入队列*/
        
    public synchronized Object setTimer(String taskname, String eventname, int timerevent, int delay, Object param){
            TimerSlot slot 
    = new TimerSlot();
            slot.taskname 
    = taskname;
            slot.eventname 
    = eventname;
            slot.timerevent 
    = timerevent;
            slot.expiretime 
    = System.currentTimeMillis() + delay;
            slot.param 
    = param;
            
    try {
                queue_.put(slot);
            }
     catch (Exception ex) {
            }

            
    return 0;
        }

        
        
    /**去掉指定的定时器*/
        
    protected synchronized int killTimer(Object timer){
            
    if (queue_.remove(timer)){
                
    return 0;
            }

            
    return -1;
        }

        
        
    /**关闭操作*/
        
    public void close(){
            queue_.clear();
        }

        
        
    /**线程运行,检查定时器是否触发*/
        
    public void run(){
            
    while (true){
                
    try{
                    TimerSlot slot 
    = queue_.peek();
                        
    if (slot == null{
                            Thread.sleep(
    50);
                            
    continue;
                        }

                        
    long now = System.currentTimeMillis();
                        
    if (now < slot.expiretime) {
                            Thread.sleep(Math.min(slot.expiretime
    -now,50));
                            
    continue;
                        }

                        queue_.remove();
                        
                        TaskMsg taskmsg 
    = new TaskMsg();
                        taskmsg.eventName
    =slot.eventname;
                        taskmsg.eventNo 
    = slot.timerevent;
                        taskmsg.msg 
    = (slot.param);
                        taskmsg.sender 
    = "__timer";
                        taskmsg.receiver 
    = slot.taskname;
                        TaskFactory.getInstance().getTaskByName(slot.taskname).
                                putmsgtoqueue(taskmsg);
                }
    catch(InterruptedException e){
                    
    return;
                }

            }

        }

        
        
    class TimerSlot implements java.lang.Comparable<TimerSlot>{
            
    public String eventname;
            
    public String taskname;
            
    public int timerevent;
            
    public long expiretime; // ms, System.current+delay
            public Object param;
            
    public int compareTo(TimerSlot  other) {
                
    return (int)(this.expiretime-other.expiretime);
            }

        }

    }

    发表于 @ 2007年12月03日 09:25:00|评论(loading...)|编辑

    新一篇: JAVA内存溢出 | 旧一篇: WURFL的使用

    评论

    #lgh0209 发表于2008-01-11 17:52:42  IP: 202.96.204.*
    这些东西俺都没用过,支持一下!!
    #lichuanxin2008 发表于2008-07-17 04:50:43  IP: 58.242.209.*
    cvbcbv
    #elong 发表于2008-08-27 14:16:47  IP: 58.248.126.*
    国内最专业的生物实验定时器定点生产基地


    生物实验计时器在生物实验室的教学、生产和实验项目中都有广泛应用,是科研实验工作者的好帮手!

    实验室中苛刻的工作环境和生物实验精确严谨的工作特性,对生物计时器产品有高精确性,高稳定性,高易用性和高耐用性等方面的要求。品质优良的实验计时仪器能够帮助科研工作者提高工作效率,在应付复杂频密的实验应用工作的同时,还能获得更长的产品使用周期。

    科研工作者被各大医药公司、生物科技公司视为“终端上帝”,而科研工作者和实验室计时器之间亲密的关系,使得生物实验室计时器悄然成为了争夺终端市场的战场; 试想每天“上帝们”开始做实验的时候,就可以看到计时器上企业大大的'LOGO" ,这种细致入微企业品牌推广渠道将成为企业品牌产生细腻深远的影响。

    瑞达电子作为国内电子钟表生产制造业的领军企业,长期为多家世界五百强企业提供代工服务(如沃尔玛、宜家、迪士尼等),在产品质量控制和成本控制方面处于世界同行的前列。
    瑞达电子针对国际国内市场,推出了多款针对实验室应用的计时器产品,厂家直销减少中间环节,最大的让利给客户; 凭借瑞达电子强大的产品设计和生产制造能力,可以为各大医药公司,生物科技企业提供OEM/ODM的产品,协助您打造生物计时器领域的专属品牌。
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © njchenyi