满天星
Fork me on GitHub

Java学习Day11-培训班

Java多线程
    1.进程:一个正在运行当中的程序
    2.线程:线程就是一个进程中的一个执行流程
    线程总是离不开进程,一个正在执行的程序中的进程,会在内存中开辟一片
    空间,这个进程中的所有线程共用这片空间

    其实电脑的CUP是在我们人的角度上多核,其实不然,CUP在一个时间片段只能
    做一件事情,把1秒分成很多个时间片段,当多到我们分不清楚,就实现了多核
    运行
多线程实现的两种方式
    Thread类-----继承该类
    Runnable接口---实现该接口
开启一个线程固定格式:调用start()方法而****不是调用run()方法******
1.继承Thread类来创建线程
    必须重写run()方法

使用继承Thread类写一个线程,重写run方法,在run方法中写一个for循环
这个类中有一个静态属性(int) 在run 方法中对这个属性判断,分为四种
状态,每种状态输出不同的话,在测试类中的main方法中创建4个线程,
开启这四个线程

2.实现Runnable接口创建线程
    class Runn implements Runnable{
        public void run(){

        }
    }
    public static void main(String[] args){
        Runn r=new Runn();//创建Runnable实例
        Thread t=new Thread(r);//创建线程
        t.start();//启动线程
    }
3.内部类
    有名的(匿名内部类)
    Thread t=new Thread(){
        public void run(){

        }
    };
    t.start();
    匿名
    new Thread(){
        public void run(){

        }
    }.start();
    分开写实现Runnable接口
    Runnable r=new Runnable(){
        public void run(){

        }
    };
    Thread t=new Thread(r);
    Thread t2=new Thread(r);
    t.start();
    一起写的实现Runnable接口
    1)
    Thread t=new Thread(new Runnable(){
        public void run(){

        }
    });
    t.start();

线程的优先级
    Java提供一个线程调度器来监控程序中启动后进入准备状态的所有线程
    ,线程调度器按照线程的优先级来决定应调度那个线程来执行

    线程的优先级用数字表示,范围从1-10,一个线程默认优先级是5

    获取线程优先级数:getPriority()
    设置线程优先级数:setPriority()
线程休眠
    sleep(long millis)----让线程休息一段时间
    join()导致当前线程等待,直到调用该方法的线程死亡
    join(long millis)导致当前线程等待millis毫秒
    yield()为其它可运行的线程提供执行机会
线程的终止
    自动终止----执行完毕,自然死亡
    手动终止
        stop()----已过时,基本不用

        interupt()--粗暴的终止方式

        通过一些标志使run方法停止运行,从而达到线程的终止
        推荐使用方法.使用手段让其自然死亡
-------------本文结束期待您的评论-------------