Java多线程基础(一)

来源:互联网 发布:mac 访问共享文件夹 编辑:程序博客网 时间:2024/05/18 01:51

文章转载自第一代码http://www.diyidaima.com/article/detail/jhyozdjp

首先我们需要理解什么是线程?线程是在进程中独立运行的子任务。

一.多线程的使用

在Java中,已经自带对多线程技术的支持,可以方便的实现多线程编程。实现多线程的方式主要有两种,一种是继承Thread类,另一种是实现Runnable接口。下面我们先来看看第一种。

1.继承Thread类

  首先我们来看一下Thread类的结构:public class Thread implements Runnable.可以发现,Thread实现了Runnable接口,Thread和Runnable是多态关系。实际上,由于Java语言的特点是单根继承,所以使用继承Thread类的方式创建新线程时,就会有不支持多继承的缺点。所以为了支持多继承,可以实现Runnable接口的方式,边实现边继承。而这两种方法实际上没有本质的区别。我们先来看看第一个实例://自定义线程类MyThread public class MyThread extends Thread{     @Override     public void run(){      super.run();      System.out.println("MyThread");     } }//运行类Runpublic class Run {    public static void main(String[] args){      MyThread mythread=new MyThread();      mythread.start();      System.out.println("运行结束!");    }}

运行结果:

运行结束!  MyThread   

从上面的运行结果可以知道,MyThread.java类中的run方法执行的时间比较晚,这说明在使用多线程技术时,代码的运行结果与代码的执行顺序或调用顺序是没有关系的。这说明线程的调用具有随机性。

注意:如果多次调用start()方法,则会出现Exception in thread “main” java.lang.IllegalThreadStateException异常。

2.实现Runnable接口

  有这样一种情况,当想创建的线程类已经有了一个父类了,而Java又不支持多继承,所以就不能再继承Thread类了,这个时候就可以使用第二种方式实现多线程。

下面我们来看看一个实例:

//创建一个实现Runnable接口的类MyRunnablepublic class MyRunnable implements Rinnable{     @Override     public void run(){         System.out.println("运行中!");     }}

那现在我们如何使用这个MyRunnable类呢?我们知道,Thread有多个构造方法(8个)其中有两个构造方法Thread(Runnable r)和Thread(Runnable r,String name)可以传递Runnable接口,说明我们可以创建一个MyRunnable类的对象并传入其中。

//运行类Run public class Run{         public static void main(String[] args){         Runnable runnable=new MyRunnable();         Thread thread=new Thread(runnable);         thread.start();         System.out.println("运行结束!");    } }

运行结果如下:

运行结束!  运行中      

总结:通过上面的两个实例,我们初步掌握了线程以及如何使用线程。

更多详情可以查看原文http://www.diyidaima.com/article/detail/jhyozdjp

原创粉丝点击