JAVA 学习模块十八: 多线程

这里写图片描述

1.多线程定义

/*
多线程:java支持该技术

进程的定义:(正在进行中的程序)不直接执行,只是在分配该应用程序的运行空间


线程:执行路径,负责执行,负责进程中内容执行的一个控制单元,进程中肯定有线程。

一个进程中可以有多个执行路径,即称为多线程。

一个进程中至少有一个线程。

开启多个线程是为了同时运行多部分代码。

每一个线程都有自己运行的内容,这个内容称为线程要执行的任务。

真实来讲并不是同时执行。


cpu:
快速切换线程,看似同时运行。线程多,被CPU处理的频率就减少,切换时随机的。

JVM 启动时就启动了多个线程,至少有两个线程可以分析的出来。

1.执行main函数的线程
    该线程的任务代码都在主函数中


2.负责垃圾回收的线程
    都在垃圾回收器里定义。(底层内部完成的),每个对象都有能够回收的方法。(finalize() 方法)






*/

2.多线程实现

/*
多线程:java支持该技术
如何实现多线程:


*/


//正常执行
class Demo
{
    private String name;
    Demo(String name)
    {
        this.name = name;
    }
    public void show()
    {
        for(int i = 0;i<5;i++)
        {
            for(int j = -999;j<9999;j++){}
            System.out.println(name+i);
        }


    }
}

class Th
{

    public static void main(String[] args)
    {
        Demo d1 = new Demo("wangcai");
        Demo d2 = new Demo("duoduo");
        d1.show();
        d2.show();

    }
} //结果是先wangcai,在duoduo

//多线程执行
/*创建线程方式一:继承Thread 类
步骤:
1.定义一个类,继承Thread类
2.覆盖Thread类中的run方法
3.直接创建Thread的子类对象创建线程
4.调用start()方法开启线程。
*/


class Demo extends  Thread
{
    private String name;
    Demo(String name)
    {
        this.name = name;
    }
    public void run()
    {
        for(int i = 0;i<5;i++)
        {
            for(int j = -999;j<9999;j++){}
            System.out.println(name+i+ getName());//得到线程的名字,主线程的名字就是main
        }


    }
}

class Th
{

    public static void main(String[] args)
    {
        /*
        创建线程的目的是为了开启一条执行路径,取运行指定的代码和其他代码实现同时运行。
        而运行的指定代码就是这个执行路径的任务。
        jvm创建的主线程的任务都定义在了主函数当中,

        而自定义的线程都定义在:
        Thread类用于描述线程,线程是需要任务的。所以Thread类也对任务描述,这个任务就通过Thread类中的run()方法来体现。
        也就是说,run方法就是封装自定义线程运行任务的函数。
        run方法中定义的就是线程要运行的任务代码。

        我们开启线程是为了运行指定代码,所以只有继承Thread类,并复写run方法。
        将运行的代码定义在run方法中即可。
        */
    //  Thread t1 = new Thread();
        Demo d1 = new Demo("wangcai");
        Demo d2 = new Demo("duoduo");
        d1.start();//开启线程,调用方法
        d2.start();


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值