您的位置:首页 > 编程语言 > Java开发

java线程实现的两种方式实例

2013-12-30 20:41 211 查看
http://www.liuzm.com/article/java/9128b.htm
在网上查了一些JAVA线程的例子.要么都是抄来抄去,要么就是复杂,对于初学者,很难去理解线程

为了让初学者更快的理解线程.我自己写了简单易懂.希望大家能理解
先看代码吧:

建一个主函数类:

public static void main(String[] args)
{

thread1 thread1 = new
thread1();//用Thread类的子类创建线程
Thread thread2 = new Thread(new
thread2());//用Runnable接口类的对象创建线程
thread1.start();//strat()方法启动线程
thread2.start();

}

建第一个线程类:

public class thread1 extends Thread
{

@Override
public void run() {

try {
Thread.sleep(7000);//主线程挂起7秒,之所以加这个方法是为了更好的理解线程.后面我会说的
System.out.println("one is
start....");

} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
建第二个线程类:

public class thread2 implements Runnable
{

public void run() {

System.out.println("two is start
...");
}

}
这些是原代码,当你运行,结果是two is start ... 然后过7秒one is
start.... 不知道大家发现没有
主函数应该第一运行thread1.start() 这个类,输出结果是one is
start.... 但是却没有.而是two is start ...
thread1.start();//strat()方法启动线程
thread2.start();

可以看出,启动线程的run()方法是通过调用线程的start()方法来实现的(见上例中主类),调用start()方法启动线程的run()方法不同于一般的调用方法,调用一般方法时,必须等到一般方法执行完毕才能够返回start()方法,而启动线程的run()方法后,start()告诉系统该线程准备就绪可以启动run()方法后,就返回start()方法执行调用start()方法语句下面的语句,这时run()方法可能还在运行,这样,线程的启动和运行并行进行,实现了多任务操作。 
所以大家明白了吧,用了线程了,他们之间是互不影响的.thread1.start() 还没有结束,对thread2.start()没有影响 现在也明白我在thread1类中加Thread.sleep(7000)的意义了吧
就是为了更好的理解线程!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: