zoukankan      html  css  js  c++  java
  • java学习之多线程

    1.java中Thread类代表一个线程,两种创建线程的方法:
    1)创建Thread的子类,重写run方法;需要调用线程的start()方法启动线程;
    2)创建Runnable接口的实现类,实现接口中的run方法;

    一般推荐使用第二种方法实现多线程,原因是,首先能够实现多线程资源的共享;另外实现多线程的子类可以继承其他父类
    2.String threadName= Thread.currentThread().getName():获取当前执行线程的名字;


    3.实现Runnable接口的方式:
    3.1:首先创建实现runnable接口的实现类:必须实现run方法
    3.2 创建3.1对应的 Runnable接口的实现类对象;
    3.3:创建Thread对象,利用Thread(Runnable target)构造器创建
    3.4 调用Thread类start()方法启动线程


    4.线程生命周期相关的几个方法:
    4.1 yield()方法,若当前线程调用该方法,线程由执行状态变为可运行状态

    4.2sleep(int min)休眠,使当前线程休眠一段时间()以毫秒为单位
    4.3 join()方法,在一个线程中调用另外的线程方法,将使当前线程阻塞,等待另一个线程执行完后,再进入可执行状态

    4.4 interrupt()方法,将解除线程的阻塞状态

    已经结束的线程再次调用start方法,会抛出异常

    4.6 isAlive()方法判断线程是否活着(可运行状态或运行状态)


    5.线程安全的问题:
    5.1理解并编写出线程不安全的实例代码:多个线程访问一个共享的资源
    5.2使用synchronized 代码块解决线程安全的问题:需要在synchronized代码块中
    参照共同的一个对象

    6.关于线程间的通信:
    6.1:相关方法:wait(),notify(),notifyAll()
    6.2这些方法在同步方法中调用(synchronized)
    //如何使用两个线程交叉打印a到c,要实现交替效果??

  • 相关阅读:
    二分图匹配初步
    动态规划初步
    一些排日程的经典方法
    petri网初步
    笔记:美国院士教你写论文
    Ubuntu18.04彻底删除MySQL数据库
    ubuntu18.04 安装 wps2019
    ubuntu18.04 阿里镜像源
    Ubuntu 18.04 使用标准Ubuntu 仓库进行自动化安装NVIDIA驱动
    linux maven环境变量配置
  • 原文地址:https://www.cnblogs.com/zhangshitong/p/4954819.html
Copyright © 2011-2022 走看看