• 注解,多线程


     //博主太赖了,并没有提供范例程序

    四个元注解类型

    @Target 

    指定被其修饰的注解能用于修饰那些程序元素

    成员变量valueElementType

    @Retention

    指定该注解可使用反射读取

    成员变量valueRetentionPolicy枚举类型

    @Documented

    指定被其修饰的注解江北javaDoc工具提取成文档

    @Inherited

    指定被其修饰的注解将具有继承性

     

    1、元注解:用来修饰注解的注解

    2、自定义注解:

    (1)语法:public @interface 注解名{

    数据类型 变量名() default 默认值;//成员变量

    }

    示例:public @interface AgeAno{

    Int age() default 19;

    }

    (2)限定自定义注解可以修饰哪些元素:

    @Target(ElementType.METHOD);//指定注解从来休息方法

    @Retention(RetentionPolicy.RUNTIME)//运行期间注解可以被反射

    Public @interface 注解名{}

    注:自定义注解中的成员变量需要给定初始值,吐过不给定,则调用时必须给定 

     

    3、线程和进程:

    (1)一个进程至少包含一个线程(单线程),进程可以包含多个线程(多线程)

    (2)单线程特点就是:依次执行,比如:main方法

    4、现成的实现方式

    (1)继承Thread

    //1、继承Thread

    //2、重写run()方法,方法体就是线程要做的事情

    //3、启动线程,创建Thread子类的对象,调用start()方法

    (2)实现方式:实现Runnable接口

    <1>实现Runnable接口

    <2>重写run()方法

    <3>启动线程

    注:启动线程时,创建Thread对象,将实现类对象作为参数传入

    Thread t = new Thread(new 实现类());

    T.start();

     

    练习:使用两种创建线程的方式,实现输出1-100之间的偶数

     

    5、线程的生命周期

    四个状态:新生状态,可运行状态,阻塞状态,死亡状态

    6、设置优先级

    (1)设置优先级:setPriority(优先级)

    优先级的值:1-10,默认是5,最高级:1

    示例:线程对象.setPriority(1);

    注:线程优先级最终决定于计算机分配

    (2)join(毫秒);阻塞指定的线程等到另一个线程完成以后再继续执行

    类似于插队操作

    (3)让线程睡眠:sleep(毫秒数)

    当前线程在指定毫秒内停止执行儿转入不可运行状态

    注:join方法需要使用线程类的对象调用

    Sleep方法使用Thread调用即可(静态方法)

    (4)yield():当前线程转入暂时停止运行的状态

    对比:sleepyield方法

      Sleep  yield

    进入状态  阻塞状态 暂时停止状态

    无其他线程时 休眠完毕后执行 回复自身线程

    有其他线程时 休眠完毕后,其他线程机会均等 优先级相等或更高的线程

     

    相同点 让线程暂时停止运行

     

     

  • 相关阅读:
    快速幂和矩阵快速幂-模板
    gcd-模板+最小公倍数
    manacher-模板-hd-3068
    kmp-模板-hd-1711
    链式前向星-邻接表--模板
    poj-3096-Suprising Strings
    hihocoder-1615-矩阵游戏II
    hihocoder-Week174-Dice Possibility
    论文-Swish: A self-gated Active Function
    hihocoder-1595-Numbers
  • 原文地址:https://www.cnblogs.com/letben/p/5185479.html
Copyright © 2020-2023  润新知