zoukankan      html  css  js  c++  java
  • 多线程

    ------------恢复内容开始------------

    线程实现

    1.继承Thread类

    1) 定义子类继承Thread类。

    2) 子类中重写Thread类中的run方法。

    3) 创建Thread子类对象,即创建了线程对象。

    4) 调用线程对象start方法:启动线程,调用run方法。

    2.实现Runable类

    1)  定义子类,实现Runnable接口。

    2) 子类中重写Runnable接口中的run方法。

    3)  通过Thread类含参构造器创建线程对象。

    4) 将Runnable接口的子类对象作为实际参数传递给Thread类的构造器中。

    5) 调用Thread类的start方法:开启线程,调用Runnable子类接口的run方法

    优先选择:Runable方式

    原因:

    1.实现的方式没有类的单继承性的局限性

    2.实现的方式更适合来处理多个线程有共享数据的情况

    联系:public class Thread implements Runable

    相同点:两种方式都需要重写run(),将线程要执行的逻辑声明在run()中

     线程安全:

    1.方法:

    1.1同步代码块

    1.2.同步方法

    1,3.Lock锁

    2.syschronized与Lock异同:

    不同:syschronized机制在执行完相应的同步代码以后,自动释放同步监视器

       lock需要手动启动同步(Lock()),同时结束同步也需要手动的实现(unlock())

    3.优先使用顺序

    Lock->同步代码块()

    ------------恢复内容结束------------

  • 相关阅读:
    浅谈localStorage本地存储
    前端代码中经常遇到的问题
    http状态码
    Transition 所支持的css属性
    ie8下的透明 问题
    #event.initMouseEvent
    svg 文字
    前端工作流程转变
    理解javascript 回调函数
    不要被npm、NodeJs、npm、webpack、vue-cli 这些名词搞晕
  • 原文地址:https://www.cnblogs.com/dormant-valcano/p/13915147.html
Copyright © 2011-2022 走看看