首页>>java >> Java开发:多线程的启动需要调用方法代码代码演示

Java开发:多线程的启动需要调用方法代码代码演示

时间:2023-10-23 19:08:07 网络整理 点击:242

线程的实现一.简介

java 可在单个程序中同时运行多个线程,并内置了对并发编程的支持。线程也称为轻量级进程,拥有自己的堆栈,寄存器和程序计数器,各个线程内运行的代码仅在该线程上下文中起作用。合理应用多线程,可以通过优化系统资源的使用来提高程序的性能和响应的速度。

二.多线程的实现

实现多线程的方式有两种,一种是创建Thread的子类并覆盖该run()方法。第二种方法是Runnable接口,下面分别介绍这两种方式的具体实现方法。

1.继承Thread类

创建Thread的子类并覆盖该run()方法,将需要在线程中执行的代码放在run()方法中,以下是创建Java Thread子类的示例:

public class MyThread extends Thread {
    public void run(){
       System.out.println("MyThread running");
    }
  }

线程的启动需要调用start方法,代码如下:

MyThread myThread = new MyThread();
myTread.start();

一旦调用start()启动线程,便会执行run()方法里的代码,且该线程与主线程(即main()函数的线程)并行执行,就好像由不同的CPU在执行,可将下面代码作为演示:

public class ThreadTest extends Thread{
    @Override
    public void run(){
        for(int i = 0; i < 5; i++){
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {      
            }
            System.out.println("myThread子线程:" + i);
        }       
    }
    public static void main(String[] args) {
        ThreadTest myThread = new ThreadTest();
        myThread.start();
        for(int i = 0; i < 5; i++){
            System.out.println("主线程:" + i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {      
            }           
        }    
    }       
}

在上面例子中,我们只运行了一个ThreadTest线程,也可以试试运行多个ThreadTest线程是什么效果。

2.实现Runnable接口

创建一个实现Runnable接口的类,并将该类的一个实例交给Thread去执行,代码如下:

public class MyRunnable implements Runnable {
    public void run(){
       System.out.println("MyRunnable running");
    }
  } 

线程的调用和启动代码如下:

Thread thread = new Threadnew MyRunnable());
thread.start();

3.两种方式的选择

从上面我们可以看出,两种实现线程的方法都能达到同样的效果,那么,在我们实际工作中,选用哪一种方法更好呢?个人觉得,实现Runnable的方法更好,因为java不支持多重继承。如果某个类已经从某个超类继承,那么它将无法再继承Thread,而且java的Thread类本身就是Runnable接口的实现类。还有的情况需要一个Thread执行多个Runnable(比如线程池),这样就必须用实现Runnable接口的方式。

《Java开发:多线程的启动需要调用方法代码代码演示》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
下载文档

文档为doc格式