JAVA 学习模块十八: 多线程

来源:互联网 发布:词频统计算法 编辑:程序博客网 时间:2024/06/05 06:32

这里写图片描述

  • 多线程定义
  • 多线程实现

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();    }
0 0
原创粉丝点击