• 多线程基础


    1.1什么是多线程

      线程是程序执行的一条路径,一个进程可以包含多个线程;

      多线程并发执行可以提高程序的效率,同时完成多项工作;

    1.2并行和并发

      并行:两个任务同时运行,(需要多核cpu)

      并发:两个任务请求运行,而处理器只能接受一个任务,就让两个任务轮流进行,由于时间间隔较短,给人感觉在同时原运

    1.3构造方法

      

    1.4线程实现方式

      1.41继承Thread

          定义类继承Thread

          重写run方法

          线程需要做的事情卸载run方法中

          创建线程对象

          开启线程,内部自动执行run方法

      1.4.2实现runnble接口重写run方法

        定义类实现runnble接口

        重写run方法

        线程需要做的事情卸载run方法中

        创建runnble子类对象

        创建Thread类,传入runnable对象

        调用thread的start方法,内部会自动调用runnable的run方法

     runnable原理:

      Thead类的构造函数传入的Runnable的引用,Start()调用的run()方法时会判断Runable的引用是否为空,不为空时

    走的时Runable的run方法。

    1.5区别优弊

      继承Theard:

          可以直接使用Thread的方法;

          因为的类的单继承,已有父类,就不能使用该方法

      实现runable接口:

          接口的多实现,父类也可以实现runnable接口

          不能直接使用Thead的方法,需要先换取Thread对象

    1.6名内部类实现线程的方式(不用特别去继承或实现Thread和Runnab)

        1.6.1继承Thread

        

        1.6.2实现Runnable接口

      

    1.7守护线程

      setDaemon(),设置一个线程为守护线程,该线程不会单独执行 ,但其他非守护线程执行结束后,自动退出。

      

    1.8线程同步

      多线程并发时般cpu会在多个线程切换执行,当希望cpu在执行某个线程未执行完前不要切换到其他线程时,就需要同步。

      1.8.1同步代码块

        使用synchronized关键字加上一个锁对象,同步代码块如果有相同的所对象,那么他们就是同步的。

        1.8.2同步方法

          使用synchronized关键字修饰一个方法,那么该方法所有代码都是同步的

           注:非静态的同步方法所对象时this,静态方法所对象是该类的字节码对象

    1.9 死锁

      多线程同步的时候,如果同步代码嵌套,使用相同的所锁,就可能出现死锁

    注:collcations中可以让非同步的集合转化未同步的

          

  • 相关阅读:
    [AWS] Lab
    [AWS] Lab
    [AWS] Launch the VPC Wizard
    [AWS] EC2 Dashboard
    mysql .net下载
    币乎咕噜DeFi踩雷记
    量化分析师关于有限差分方法(FDM)最好的5本书
    QuantStart量化交易文集
    Exploring Market Making Strategy for High Frequency Trading: An Agent-Based Approach
    什么是信息比率?信息比率与夏普比率的差别?
  • 原文地址:https://www.cnblogs.com/tangxz/p/9593175.html
Copyright © 2020-2023  润新知