分享

java学习——109.多线程

 pythonjava学习 2021-04-06

现在的操作系统均支持多线程。

多线程即将一个进程可以划分为多个线程,这样可以提高效率。

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线程,在程序开始执行时,都是执行此线程。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多