【Java】多线程

Java中的多线程

一.程序、进程与线程

程序:一组指令的有序集合。

进程是:一个应用程序。

线程是:一个进程中的执行场景/执行单元。

二.多线程的优点

一个进程可以启动多个线程。
线程A和线程B,堆内存和方法区内存共享。但是栈内存独立,一个线程一个栈。每个栈和每个栈之间,互不干扰,各自执行各自的,这就是多线程并发。Java的多线程提高程序的处理效率。

三.多线程的实现
(1)Java直接定义了一个从跟类Object中派生的Thread类。所有从java.lang.Thread类派生的直接子类或间接子类均为线程。构建Thread子类对象的步骤如下:
1.构建Thread子类,重写run( )方法。
2.创建线程对象。
3.线程对象调用start( )方法启动该线程。

public class ThreadTest01 {
    public static void main(String[] args) {
        MyThread t = new MyThread();
       
       	t.start();
        for(int i = 0; i < 100; i++){
            System.out.println("主线程--->" + i);
        }
    }
}

class MyThread extends Thread {
    @Override
    public void run() {

        for(int i = 0; i < 100; i++){
            System.out.println("分支线程--->" + i);
        }
    }
}

(2)构造线程的另一种方法是实现Runnable接口。通常一个类已经扩展了Frame或Applet,由于Java语言的单继承性,这样就不能再继承Thread类。我们就可以用实现Runnable接口来构造线程。

实现Runnable接口构造线程的步骤如下:

1.将需要实现多线程的类声明为实现Runnable接口的类,实现run( )方法,并将线程体放在该方法中。
2.创建一个该类的实例。
3.从该实例创建一个Thread的实例。
4.调用start()方法启动该线程。

public class ThreadTest02 {
    public static void main(String[] args) {
        Thread t = new Thread(new MyRunnable()); 
        
        t.start();
        
        for(int i = 0; i < 100; i++){
            System.out.println("主线程--->" + i);
        }
    }
}


class MyRunnable implements Runnable {
    @Override
    public void run() {
        for(int i = 0; i < 100; i++){
            System.out.println("分支线程--->" + i);
        }
    }
}

四.sleep()方法

让当前线程暂时停止下来,睡眠的时间由指定的毫秒数决定。线程醒来之后返回到就绪状态。指定的时间是线程不会运行的最短时间,不是实际时间。
Thread.sleep()方法,间隔特定的时间,去执行一段特定的代码,每隔多久执行一次。

public class ThreadTest03{
    public static void main(String[] args) {
    	
        for(int i = 0; i < 10; i++){
            System.out.println(Thread.currentThread().getName() + "--->" + i);

            // 睡眠1秒
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值