Java实现多线程内容通俗易懂,一篇文章了解多线程并且能到简单的使用多线程

导学了解

什么是进程?

进程:程序的基本执行实体

更加通俗的讲:一个软件执行后,它就是一个进程,绿色的内容都是一个进程。

什么是线程?

线程是操作系统能够进行运算调度的最小单位。它被包含在进程当中,是进程中的实际运作单位。

可以这样理解: 用没有用过360安全卫士,它上面的每个功能都相当于进程,很多进程能够同时的运行,并且互相没有产生问题。进程类似于应用中互相独立,可以同时运行的功能。很多的线程合在一起就形成了多线程。

什么是多线程?

Java多线程是指在Java程序中同时运行多个线程,每个线程都可以独立执行不同的任务。Java多线程可以提高程序的并发性和响应性,使得程序可以同时处理多个任务,提高程序的效率。Java中的多线程可以通过继承Thread类或实现Runnable接口来创建线程,也可以使用线程池来管理线程。同时,Java提供了丰富的多线程API,如synchronized关键字、wait()和notify()方法等,来帮助开发者更好地控制线程的并发访问。

实现多线程的三种方式:

方法一:继承Thread类:

通过重写父类Thread方法中的run方法实现线程

注意:线程的开启是通过使用start方法来开启线程,而并非是通过使用调用run方法,通过类的对象去调用run方法,只能是一个普通的调用,并不能开启线程。

代码实现: 

package thread_study;

public class demo1 {
    public static void main(String[] args) {
        MyThread1 thread = new MyThread1();
        MyThread1 thread2 = new MyThread1();
        thread.setName("线程一");
        thread2.setName("线程而");
        //注意:这里的线程开发则是通过start方法去开启,并非是通过调用run方法,调用run方法则是普通的调用
        thread.start();
        thread2.start();

    }
}
class MyThread1 extends Thread{
    /*
        开启线程的第一种方法:
        定义个类去继承线程类Thread
        重写类中的run方法
        创建子类的对象,并且去开启线程
     */
    @Override
    public void run() {
        for (int i=0;i<10;i++){
            System.out.println("这是"+getName()+"的内容输出");
        }
    }
}

控制台输出:

方法二:通过实现Runnable接口

代码实现

package thread_study;

public class demo2 {
    public static void main(String[] args) {
        MyThread2 myThread2 = new MyThread2();
        Thread thread = new Thread(myThread2);
        Thread thread2 = new Thread(myThread2);
        thread.setName("线程一");
        thread2.setName("线程二");
        thread.start();
        thread2.start();

    }
}
class MyThread2 implements Runnable{
    /*
        开启线程的第二种方法:
        定义个类实现R
        重写类中的run方法
        创建子类的对象,并且去开启线程
     */
    @Override
    public void run() {
        for (int i=0;i<10;i++){
//            Thread thread = Thread.currentThread();
            System.out.println("这是"+Thread.currentThread().getName()+"的内容输出");
        }
    }
}

方法三:继承Callable

注意:这个方法拥有返回值

package thread_study;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

//第三种方法去实现线程
public class MyThread3 {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        /*
            多线程实现的第三种方法:可以接收到线程运行的结果
            通过实现Callable接口,重写call方法
            然后通过创建Fu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想睡醒的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值