zoukankan      html  css  js  c++  java
  • java学习阶段一 工具类(线程)

    java学习阶段一 工具类(线程)

    介绍

    一个操作系统可以包含多进程

    一个进程可以包含多线程

    多线程:不同的子程序轮流执行

    基本知识

    • 线程的创建

      所有线性类都需要实现Runnable接口(只有一个run方法) 而Thread类也实现类此接口 相当于完整的线程类的模板

      //第一种
      继承Thread类的方式创建线程类
      //Thread构造方法
      Thread()//空构造方法
      Thread(String name)// 创建线程名称   
      Thread(Runnable target)//创建基于Runnable接口实现类的线程对象
      Thread(Runnable target,String name)//以上两种  
      //Thread常用方法
      public void run()//线程相关代码
      public void start()//启动线程方法
      public static void sleep(long m)//线程休眠m毫秒的方法 
      public void join()//优先执行调用join方法的线程
      //第二种
      实现Runnable接口
      1创建接口实现类的对象
      2 创建Thread类的对象并传入接口实现类对象作为构造方法的参数
      3 Thread对象调用start方法
          
      Thread.currentThread().getName()//调用线程类的一个静态方法表示当前线程再调用getname表示获取当前线程名  
      
    • 线程状态

    • 新建 创建线程类对象后

    • 可运行 线程调用start方法后

      • 正在运行 获取cpu使用权到时间用完 转回到可运行/yield()

      • 阻塞状态 暂停状态 阻塞状态下只能先转到可运行状态

      • 终止状态 停止

      • sleep方法 使用场景 定期刷新数据

        public static void sleep(long millis)//休眠指定时间 单位毫秒
            
        
      • join方法 使用场景

        线程类下的对象调用join 使得该线程强制先执行 其他的线程则进入阻塞状态

        join有两个方法 一个无参 一个有参为long millis 限制该线程优先执行的最长时间

    • 线程优先级

      10个优先级 1-10的整数 数字越大优先级越高

      主线程默认为5

      其中也可以用优先级常量设置

      Thread类下优先级常量

      MAX_PRIORITY 10 MIN_PRIORITY 1 NORM_PRIORITY 默认5

      获取和设置

      public int getPriority() //获取
      public void setPriority(int newPriority)//设置优先级
      
    • 同步

      //synchronized 同步关键字 可以用在成员方法 静态方法 语句块
      //在执行完此关键字下的代码中不允许被打断
      
    • 线程间通信与死锁

      //死锁为所有线程都处于等待状态
      wait()//中断方法的执行 使线程等待
      notify()//唤醒处于等待的某一个线程,使其结束等待
      notfyAll()//唤醒所有处于等待的线程 使它们等待结束
      

    注意事项

    1 线程只能启动一次

    2 主方法本身为一个线程

    3 允许过程随机

    4 run方法可以被多个线程使用

    5 优先级不能完全保证先执行

  • 相关阅读:
    Git笔记
    Android笔记
    个人人生警示
    Java 注解
    JAVA面试题
    kotlin学习笔记
    Android Studio之gradle和gradle插件
    gcc在Linux下编译so文件出错 jni.h: no such file or directory
    apktool新官网地址
    Vim 使用记录
  • 原文地址:https://www.cnblogs.com/tigo/p/14443957.html
Copyright © 2011-2022 走看看