zoukankan      html  css  js  c++  java
  • java-day14

    多线程程序访问共享数据会产生安全问题

    解决线程安全问题

      同步代码块

        synchronized(锁对象){

         可能出现线程问题的代码 

        }

      同步方法

        修饰符 synchronized 返回值类型 方法名(){

          可能出现线程问题的代码  

        }

      静态同步方法

        修饰符 static synchronized 返回值类型 方法名(){

          可能出现线程问题的代码  

        }

        静态方法的锁对象是本类的class属性

      Lock锁

        void lock()  获取锁

        void unlock()  释放锁

        在成员位置创建ReentrantLock对象

        在可能出现问题代码前lock()

        在可能出现问题代码后unlock()

    线程的7种状态

      1.出生状态

      2.就绪状态

      3.运行状态

      4.等待状态  调用wait()方法等待,通过notify()方法唤醒 notifyAll()唤醒所有等待线程

      5.休眠状态  sleep()方法

      6.堵塞状态

      7.死亡状态

    线程池、

      创建多个线程,保存到一个集合中,当需要使用时,从集合中取出来给线程使用

      Executor类  生成线程池类

        通过方法 newFixedThreadPool() 返回一个ExecutorService接口

        ExecutorService中的submit()方法 从线程池中获取线程 void shutdown()方法 关闭/销毁线程池方法

      Lambda表达式  函数式编程思想

        格式

          (参数列表) ->{重写方法的代码}

          ():接口中的抽象方法

          ->:传递

          {}:重写抽象方法的方法体

       

       优化:1.数据类型一样可以省略,如果只用一个参数()也可以省略 2.如果{}中代码只有一行 {},return,;可以省略

  • 相关阅读:
    Linux 系统目录 以及常见命令
    设计模式C++学习笔记之十三(Decorator装饰模式)
    设计模式C++学习笔记之二(Proxy代理模式)
    Linux 文件基本操作
    Linux 文件系统基本结构 以及命令行 管理
    Linux 入门 bash语句 第三课
    JMeter学习参数化User Defined Variables与User Parameters
    JMeter使用中遇到的问题:Jmeter Debug
    JMeter学习(九)FTP测试计划
    JMeter学习(八)JDBC测试计划-连接Oracle
  • 原文地址:https://www.cnblogs.com/324fch/p/11748238.html
Copyright © 2011-2022 走看看