zoukankan      html  css  js  c++  java
  • Java基础回顾 —线程Thread源码注意

    1. Thread类也实现了Runnable接口,因此实现了Runnable接口中的run方法。
    2. 当生成一个线程对象时,如果没有为其设定名字,那么线程对象的名字将使用如下形式:Thread-number,该number将是自动增加的,并被所有的Thread对象所共享(因为是static的成员变量)。
    3. 当使用继承方式来生成对象时,我们需要重写run方法,因为Thread类的run方法只是调用Runable接口中的run(),本身什么事情也不做。
      当使用实现Runnable接口方式生成线程对象时,我们需要实现Runnable接口的run方法,然后使用new Thread( new MyThread() ),这时点线程对象的run方法会调用MyThread类的run方法,这样自己编写的run方法就执行了。
      tips1: Thread和Runable的子类都同时实现了Runable接口,且Thread类中维护了一个private Runable target实例。结构类似于代理类
    4. 线程的消亡不能通过调用一个stop()命令,而是让run()方法自然结束,或者通过给Thread变量赋值null来表明它被停止。
      tips2: 如果一个类继承Thread类,则不适合多个线程共享资源,而实现了Runnable接口,就可以方便的实现资源共享。
      tips3: 实现Runnable接口相对于继承Thread类来说有如下优势:
      1)适合多个相同程序代码的线程去处理同一资源的情况。
      2)可以避免由Java单继承带来的局限性。
      3)增强了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。
      所以开发中多建议使用Runnable接口。
      官方一点的说法就是不推荐使用继承的方式,因为它将任务和运行任务的机制混在一起。将任务从线程中分离出来是比较好的设计。
  • 相关阅读:
    Dao跨事务调用实现转账功能
    QueryRunner类 的應用,以及ResultSetHandler 接口的实现类
    C3P0数据源的使用
    iOS中UI阶段常用的一些方法
    谷歌云服务器的使用
    Odoo学习之domain表达式【转载】
    odoo 视图继承
    Odoo字段类型详解
    odoo12:命令行
    xpath转义‘
  • 原文地址:https://www.cnblogs.com/nextStep/p/6691271.html
Copyright © 2011-2022 走看看