zoukankan      html  css  js  c++  java
  • 202012.13,线程补充

    线程未同步的时候
    结果:没有头加入线程同步的时候,多个线程同时修改一个共享资源的时候,会造成多个线程同时操作一个资源(多个窗口同时售卖一张车票),看你就会出现资源的重复调用
    |
    线程使用步骤:

    1. 创建一个线程实现类
    2. 在线程实现类里面重写run方法,并在run方法中写代码
    3. 在测试类里面main方法中创建实现类对象
    4. 创建线程对象:Thread 线程对象名=new Thread(线程实现类对象,“线程重命名“);
    5. 调用:线程对象.start();启动线程的同时,调用里面的run方法
      |
      代码演示

      图片还要调用start方法没写出来



    同步代码块实现线程同步:
    同步代码块,通过同步锁,保证每次使用的时候只有一个得到锁的线程调用资源
    |
    对于非静态同步方法,同步锁,锁对象就是他线程实现类对象本身(this)
    对于静态同步方法:锁对象就是接口实现类的字节码对象---》Runable.class
    格式:synchronized(锁对象){会出现线程同步的代码}
    同步代码块步骤(主要是run方法内部步骤的改变)
    |
    代码演示:




    同步方法实现代码同步:
    同步方法:有synchronized修饰的方法,由于java内部每个对象内部都有一个内置锁,
    当用词关键字修饰方法的时候,内置锁会保护整个方法,再调用该方法的时候免费获取
    内部锁,否则就会处于阻塞模式
    *
    步骤
    就是在润方法外面写一个synchronized方法,方法内部写不希望被同步的操作,在润发内部调用这个方法就可以了

    *
    *
    *
    同步锁
    步骤
    1.Lock lock=new RunableLock();
    2.使用lock.lock()加锁,需要捕获处理
    3.一系列操作
    4.在捕获处理后面加finally,完成开锁功能

    *
    *
    *
    线程池
    如果一个现诚邀调十次,一次一次new太憨批,所以就有了线程池
    |
    代码

    简单地来说就是,当我们放入线程池的时候就已经直接运行了。

  • 相关阅读:
    java-集合框架-泛型2-泛型限定
    进程间通信
    多进程编程基础概念
    linux deb 打包流程
    linux RPM 打包流程
    Python 第一個程序
    从注册验证码入手,我保住了30%的流失用户
    为什么Web端登录需要验证码?
    网络验证码的进化:从简单图文到无感验证
    公开课 | 金融知识图谱的应用探索
  • 原文地址:https://www.cnblogs.com/tushao/p/14133410.html
Copyright © 2011-2022 走看看