现在的操作系统均支持多线程。 多线程即将一个进程可以划分为多个线程,这样可以提高效率。 Java支持多线程,实现起来也不复杂。 有两种方式实现多线程:继承Thread类和实现Runnable接口。 今天介绍第一种,Thread类。 1、Thread类 此类为Java类库,可直接调用。它具有封装线程对象的能力,声明了创建、管理、控制线程对象的方法。其部分方法声明如下: public class Thread extends Object implements Runnable { public Thread() ;//构造方法 public Thread(String name);//构造方法重载,name指定线程名 public Thread(Runnable target);//构造方法重载,target指定线程的目标对象 public Thread(Runnable target, Stringname);//构造方法重载 public void run();//描述线程操作的线程体 publicfinal String getName();//返回线程名 publicfinalvoid setName(String name) ;//设置线程名 publicstaticint activeCount();//返回当前活动线程个数 publicstatic Thread currentThread(); //返回当前执行线程对象 public Sting toString();//返回线程的字符串信息 public void start();//启动已创建的线程对象 } 2、简单示例 声明继承Thread类的奇数/偶数序列线程。 其完整代码如下: public class ThreadLearn extends Thread{ int start,end;//序列的起点,终点 public ThreadLearn(String s,int start,int end) { super(s);//继承Thread类,调用其带参的构造方法,为线程指定名字 this.start=start; this.end=end; } public void run() {//实现线程类的方法,此方法由线程调用,有几个线程就可以调用多少次 System.out.println("当前线程是:"+Thread.currentThread().getName());//调用线程类的方法,返回当前线程名 while(start<=end) { for(int i=1;i<=10;i++) { System.out.print(start+" "); start=start+2; } System.out.println(); } } public static void main(String args[]) { System.out.println("当前线程是:"+Thread.currentThread().getName());//调用线程类的方法,返回当前线程名 Thread odd=new ThreadLearn("奇数",1,50);//创建线程,名字为“奇数线程”,即会输出1-50之间的奇数 Thread even=new ThreadLearn("偶数",2,50);//创建线程,名字为“偶数线程”,即会输出2-50之间的奇数 odd.start();//线程启动 even.start();//线程启动 } } 其运行结果如下: 再运行一次,其运行结果如下: 仔细看这两个运行结果,会发现,其输出结果并不一样。 但输出的数字是一样的。 因为线程是并发执行的,并不会等一个线程执行完了另一个线程才开始执行。 本例中,main方法中创建了两个线程,odd和even,这两个线程在执行的时候是同时进行的,所以每一次运行时,数据的输出顺序会不一样,但输出结果数据肯定是一样的,只是顺序会变化 。 另,在每一个程序中,都会有一个默认的main线程,在程序开始执行时,都是执行此线程。 |
|
来自: pythonjava学习 > 《待分类》