【名师课堂】Java高级开发

【名师课堂】Java高级开发

Java核心第三部
156课时 |
31736人已学 |
(17 评论)

加入学习
加入学习

前提:有一个线程的执行主类

要实现一个多线程的主类:

每一个

1.继承一个Thread类:

继承Tread类并且覆写一个run方法

Example:

class MyThread extends Thread{
    private String title;
    public MyThread(String title){
        this.title=title;
    }
    public void run(){
        for(int i=0;i<10;i++){
            System.out.println(title+" : "+i);
        }
    }
}

public class Test {

    public static void main(String args[]) {
        MyThread m1= new MyThread("Thread1");
        MyThread m2= new MyThread("Thread2");
        MyThread m3= new MyThread("Thread3");
        
        m3.start();
        m2.start();
        m1.start();
    }
}

2.(推荐)实现Runnable、Callable接口

[展开全文]

如果现在想要实现一个多线程的主类,有两种途径:

  • 继承一个Thread类:
  • 实现Runnable,Callable接口(推荐)

 正确启动多线程的方法,应该调用start()方法,start()方法来调用run()方法。每一个线程对象只能启动一次,不能同时启动多次。

[展开全文]

如果想实现多线程,必须有一个前提,有一个线程的执行主类。

线程的主类   main()

多线程的主类

  main     多线程的主类(启动方法)

如果想实现一个多线程的主类,有两类途径:

   继承一个Thread类

   实现Runnable ,Callable接口

继承Thread类实现多线程

java.lang.Thread是一个线程操作的核心类。如果想定义一个线程的主类,继承Thread类,后覆写run()方法;

 定义一个线程的实体类

当线程有了主体类后,产生对象,调用run方法。多线程给进程执行时相同,应该是交替执行,应该启动主类中的start()方法;

启动多线程  public void start(),启动run

启动了start发现了线程进行了交替执行。

为什么要通过start()方法来调用run()方法

源代码在jdk的安装目录下。

首先在本程序中发现该方法会抛出一个异常'IlligalException',常用方法应该使用throws声明,或者直接在方法中进行try。。。catch。

这个线程只有多次启动的时候才抛出异常。

而后可以发现在start()方法中调用了一次start0方法,而这个方法是一个只声明而为实现,用native关键字进程修饰,调用了本系统函数。

[展开全文]

授课教师

阿里云开发者社区全面升级
一站式体验,助力云上开发!
进入新社区

相关课程

查看更多 >

本课程相关云产品