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,要实现交替效果??

  • 相关阅读:
    Spring spEL
    Spring 使用外部部署文件
    Spring 自动装配
    spring 属性配置细节
    hdu 1054 Strategic Game
    fzu 2037 Maximum Value Problem
    将博客搬至CSDN
    HDU 4714 Tree2Cycle
    HDU 1009 The Shortest Path in Nya Graph
    POJ 1942 Paths on a Grid 组合数的优化
  • 原文地址:https://www.cnblogs.com/zhangshitong/p/4954819.html
Copyright © 2011-2022 走看看