java 多线程

2022/2/25 1:30:39

本文主要是介绍java 多线程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Thread类

表示线程,也叫作线程类,创建该类的对象,就是创建线程对象(或者说创建线程)

 

要会使用Thread类的构造方法和常用方法

构造方法

public Thread()

public Thread(String name)

public Thread(Runnable target)

public Thread(Runnable target,String name)

 

常用方法

Public String getName()

Public void start()

Public void run()

Public static void sleep(long millis)

Public static Thread currentThread()

 

目前只分享创建线程的2种方式:

1通过继承Thread类的方式

2通过实现Runnable接口的方法

 (Runnable 接口:线程任务接口)

 

创建线程

方法一:继承Thread类

1 创建子类继承Thread类

2 在子类中重写run方法,

  把线程需要执行的代码放在run方法中

3 创建子类线程对象

4 调用start()方法启动线程,执行任务代码


 

public class test {
    public static void main(String[] args) {
        MyThread mt1 = new MyThread();
        mt1.start();

        for (int j = 0; j < 100; j++) {
            System.out.println("主线程 第"+(j+1)+"次循环");
        }
    }
}

public class MyThread extends Thread {
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("子线程第"+(i+1)+"次循环");
        }
    }
}


Java程序至少有2条线程,

一条为主线程,一条为垃圾回收线程

 

创建线程第2种方式:通过实现的方式

1 创建实现类实现Runnable接口

2 在实现类中重写run方法,把线程需要执行的任务代码放入run方法中

3 创建实现类对象

4 创建Thread线程对象,并传入Runnable接口的实现类对象

5 调用start()方法启动线程,执行任务


 

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("子线程 第"+(i+1)+"次循环");
        }
    }
}

public class test {
    public static void main(String[] args) {
        MyRunnable mr = new MyRunnable();
        Thread t1 =  new Thread(mr);
        t1.start();

        for (int j = 0; j < 100; j++) {
            System.out.println("主线程 第"+(j+1)+"次循环");
        }
    }
}


创建线程第3种方法:匿名内部类(由第二种方法演变)

1 创建Runnable的匿名内部类

2 在匿名类内部重写run()方法

3 创建Thread线程对象,并传入Runnable匿名内部类

4 调用start()方法


 

public class test {
    public static void main(String[] args) {
        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println("子线程 第"+(i+1)+"次循环");
                }
            }
        });
        t1.start();
        
        for (int j = 0; j < 100; j++) {
            System.out.println("子线程 第"+(j+1)+"次循环");
        }
    }
}


备注:

1 主线程一定会等子线程全部执行完毕才会结束主线程

2 子线程任务代码执行完毕,线程就会销毁

 



这篇关于java 多线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程