首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

重拾java之线程一

2012-12-28 
重拾java之线程1[sizemedium] 接触java也有一段时间了,以前选择java原因就是java很流行,好就业,那是开始

重拾java之线程1
[size=medium] 接触java也有一段时间了,以前选择java原因就是java很流行,好就业,那是开始学习java只是简单学习,没有更深层的理解how ,why。这也是觉得自己的java技术还是这么菜。现在开始重温下j2se方面的知识,写点笔记记录下
     概念
   线程,就是你写的一个简单的程序,运行的载体的就是线程,帮你完成一件事。我的简单理解就是,线程就像洗衣机一样,它的功能帮你完成洗衣服,犹豫你很懒堆了一个月的衣服,而此时要洗,肯定是一个洗衣机搞不定了哦,而你要赶时间要把这个一个衣服用最短的时间洗完,你就用多台洗衣机来洗(纯属假设,如果你家是卖洗衣机的到可试试),刚才那情形就是传说的多线程,就是多个任务同时运行,并起运行,就是并发了。
     运行
   你要用洗衣机洗衣服,前提是你已有脏衣服的存在,放在洗衣机里,然后插上电,打开洗衣开关,洗衣机就开始工作了哦。同样在使用线程时,你要把你要打算做的事要事先编码好,然后把它添加到线程的run()方法中。最后调用start()方法,ok! 跟洗衣机一样工作了。随着高科技和不断创新的发展,洗衣机洗衣方式也是多种多样,我见过两种,一种是很古老的:就是洗衣和脱水时分开的那种,这种用起来很不方便,需要自己脱水(我很讨厌这种洗发)。一种是很先进的:就是洗衣和脱水完美的融为一体,这样很方便了,不要你亲自来脱水(很喜欢这种洗发)。其实实现线程的方式也有两种了。第一种就是很直接的使用Thread类搞定。继承Thread 在run()方法中放入你要实现的功能。如下代码


这个构造方法是传入一个Runnable类型参数,然后在传个init方法,init方法就是Thread类的初始化的地方,其中有一条语句很重要

在这个构造方法中给init方法传入的第二个参数是null,也就是target=null,初始化了一个null的target,是不是很疑惑呀。好,在上源码
    /**     * If this thread was constructed using a separate     * <code>Runnable</code> run object, then that     * <code>Runnable</code> object's <code>run</code> method is called;     * otherwise, this method does nothing and returns.     * <p>     * Subclasses of <code>Thread</code> should override this method.     *     * @see     #start()     * @see     #stop()     * @see     #Thread(ThreadGroup, Runnable, String)     */    @Override    public void run() {        if (target != null) {            target.run();        }    }

这是从写了Runnable的run()方法,这里面就一个片段,意思是如果target不为null,也就是说我们传入了一个Runnable对象,然后调用Runnable对象的run()方法,这样是因为我们已在实现Runnable接口的类中以从写了run()方法,如果target为null,意思就是通过new Thread而不传入Runnable对象,然后就会调用继承了Thread类的实现类中的run()方法。
未完待续
[/size]


热点排行