美文网首页
day11-01/02/03多线程(概述)

day11-01/02/03多线程(概述)

作者: 姗婷 | 来源:发表于2020-05-26 07:57 被阅读0次

    一、多线程

    进程:是一个正在执行中的程序每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元
    线程(例:FlashGet):就是进程中一个独立的控制单元,线程在控制着进程的执行。一个进程中至少有一个线程。
    Java VM 启动的时候会有一个进程java.exe,该进程中至少一个线程负责java程序的执行。而且这个线程运行的代码存在于main方法中。该线程称之为主线程。

    扩展:其实更细节说明jvm,jvm启动不只一个线程,还有负责垃圾回收机制的线程。
    1,如何在自定义的代码中,自定义一个线程呢?
    通过对api的查找,java已经停工了对线程这类事物的描述,就是Thread类。
    创建线程的第一种方式:继承Thread类。

    步骤:
    1.定义类继承Thread。
    2.复写Thread的run方法。
    目的:将自定义的代码存储再run方法。让线程运行。
    3.调用线程的start方法。该方法两个作用:启动线程,调用run方法。
    发现运行结果每一次都不同,因为多个线程都在获取cpu的执行权。cpu执行到谁,谁就运行。

    明确一点,在某一个时刻,只能有一个程序在运行,(多核除外)cpu在做着快速的切换,以达到看上去是同时运行的效果。
    我们可以形象把多线程的运行行为在互相抢夺cpu的执行权。

    这就是多线程的特性,随机性.谁抢到谁执行,至于执行多长,cup说的算
    创建线程方式一
    继承Thread类 1. 子类覆盖父类中的run方法,将线程运行 的代码存放在 run中。 2. 建立子类对象的同时线程也被创建。 3. 通过调用start方法开启线程。

    为什么要复写Thead中的run方法呢?
    Thread类用于描述线程。该类就定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法。也是就是说Thread类中run方法,用于存储线程要运行的代码。

    d.start();和//d.run();运行结果的区别:d.start();main主线程与run方法的线程会交替执行。d.run();只是对象调用方法,按顺序执行

    class Demo extends Thread
    {
        //重写Thread的run方法
        public void run()
        {
            for(int x=0;x<60;x++)
            System.out.println("demo run---"+x);
        }
    }
    class ThreadDemo
    {
        public static void main(String[] args)
        {
            Demo d = new Demo();//创建好一个线程
            d.start();//开启线程并执行该线程的run方法
            //d.run();//仅仅是对象调用方法,而线程创建了,并没有运行
            for(int x=0;x<60;x++)
                System.out.println("HELLO WORLD+++"+x);
        }
    }
    

    相关文章

      网友评论

          本文标题:day11-01/02/03多线程(概述)

          本文链接:https://www.haomeiwen.com/subject/jkayahtx.html