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)的意义了吧
就是为了更好的理解线程!
在网上查了一些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)的意义了吧
就是为了更好的理解线程!
相关文章推荐
- JAVA_SE线程实现两种方式实例
- java线程实现的两种方式实例
- Java中线程实现的两种方式例程
- java 实现websocket的两种方式实例详解
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- 【Java多线程】实现java线程的两种方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- java实现线程的两种方式
- Java_基础—多线程(匿名内部类实现线程的两种方式和设置名字的方法)
- 创建线程的两种方式(实现接口的方式请看实例分析5)
- java基础知识回顾之java Thread类--java线程实现常见的两种方式(一)
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- Java及Python线程实现方式带实例
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- Java实现线程的两种方式
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- java图的邻接表实现两种方式及实例应用分析
- Java多线程:创建线程的两种实现方式
- 用两种方式实现单实例(Java版)