代码编织梦想

在训练期间保存检查点-爱代码爱编程

在训练期间保存检查点 1、意义 在训练期间或者训练结束时候自动保存检查点。这样,可以使用经过训练的模型,而无需重新训练该模型,或者从上次暂停的地方继续训练,以防训练过程中断。 可以防止停电等特殊情况,使得训练终止。 回调函数:tf.keras.callbacks.ModelCheckpoint 2、过程分析 保存到哪里, filepath,#检

记一次由于多次请求超时导致伪高并发,使得Tomcat线程耗尽响应速度慢的线上问题-爱代码爱编程

故事背景: 由于线上需要及时的刷新某些第三方数据,导致请求第三方接口需要频繁调用。然而由于某些原因,服务器把该第三方地址给拉进黑名单了,导致频繁请求超时,线程耗尽呈一直等待状态,导致后续请求阻塞。 解决方案: 本应是由网管解决网络不通畅的问题。但是由于网管重启技术有限,使用技术手段进行尝试规避——为伪高并发接口配置线程池,限制它支配线程的自由,从而达到不影

Java高并发之魂-synchronized深度解析 学习笔记(1)- 对象锁和类锁-爱代码爱编程

1 Synchronized 1.1 作用 一句话概括: 能够保证 同一时刻 最多只有 一个 线程执行该段代码,以达到保证并发安全的效果。1.1 不使用并发手段的后果 public class DisappearRequest1 implements Runnable { static DisappearRequest1 instan

线程-爱代码爱编程

并发和并行 并发:指的是两个或者多个事件(任务)在同一时间段内发生的。 并行:指的是两个或者多个事件(任务)在同一时刻发生(同时发生)。 线程与进程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个线程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序就是一个进程从创建、运行

intent.putExtra(PARAM_MUSIC_LIST, (Serializable) mMusicDatas);-爱代码爱编程

前面跳过了很多,现在在改别人的代码,别人是放本地的音乐,我想把他改成可以放网络的音乐。 首先大家想象一下下面这个界面是叫做AudioActivity,那个有唱片和指针的控件叫做DiscView,还要有一个MusicService,他的内部有一个MediaPlayer和一个BoardCastReceiver,通过接收广播来控制MediaPlayer的播放。然

线程-爱代码爱编程

创建线程类 ​ java使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或者Thread类的子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流,java使用线程执行体来代表这段程序流。 java中通过继承Thread类来创建并启动多线程,步骤如下: ​ 1.创建一个Thread类的子类 ​ 2.

秋招面试知识点----多线程篇-爱代码爱编程

juc下有什莫 AQS:共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制。 就是clh先进先出队列(节点有联系),private volatile int state;//同步状态,使用volatile修饰保证线程可见性,还有就是

并发编程-共享模型之管程-爱代码爱编程

1. 五种状态 这是从 操作系统 层面来描述的 新建:创建了线程对象,还未与操作系统线程关联可运行:就绪状态,就是调用了start()方法运行:指获取了 CPU 时间片运行中的状态 当 CPU 时间片用完,会从【运行状态】转换至【可运行状态】,会导致线程的上下文切换阻塞:处于运行状态中的线程由于某种原因,暂时放弃对 CPU的使用权,停止执行,

Java处理异常2种机制关键字区别解析-爱代码爱编程

在异常处理的过程中,throws和throw的区别是? throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理. throw:是在具体的抛出一个异常类型. throws的栗子: throws的话,就是这个方法有可能会产生异常,而我只是将它声明出去,我自己不处理,如果有人调用的时候,可以知道,这个方法,有可能会抛出异常,我

深入浅出Java并发多线程(8)- 线程8大核心基础-爱代码爱编程

1 Thread 和 Object 类中的重要方法 1.1 wait,notify,notifyAll作用、用法 作用、用法:阻塞阶段 、唤醒阶段、遇到中断阻塞阶段 执行 wait方法的时候,必须先具有这个对象的monitor锁直到遇到以下的4种情况,才会被唤醒: 1.1.1 普通用法 /** * @Description wai

线程相关面试题-爱代码爱编程

什么是线程池? 线程池是一种多线程处理形式, 处理过程中将任务提交到线程池,任务的执行交由线程池来管理。 如果每个请求都创建一个线程去处理,那么服务器的资源很快就会被耗尽, 使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以被重复利用, 可执行多个任务。 为什么要使用线程池? 01:降低资源的消耗 02:提高响应的速度 03:

synchronized只会用不知道原理?一文搞定-爱代码爱编程

听说微信搜索《Java鱼仔》会变更强哦! 本文收录于JavaStarter,里面有我完整的Java系列文章,学习或面试都可以看看哦 (一)概述 在多线程的程序执行中,有可能会出现多个线程会同时访问一个共享并且可变资源的情况,这种时候由于线程的执行是不可控的,所以必须采用一些方式来控制该资源的访问,这种方式就是“加锁”。 我们把那些可能会

并发编程 — 缓存一致性问题-爱代码爱编程

一、机器硬件CPU 在计算机中,所有的运算操作都是有CPU的寄存器来完成的,CPU指令的执行过程需要涉及数据的读写操作,CPU所能访问的所有数据只能是计算机的主存,虽然CPU的发展频率不断提升,但是内存在访问速度上并没有多大的突破,因此CPU的处理速度和内存的访问速度之间的差距越来越大。 1、CPU 缓存 由于CPU和内存的速度严重不对等,如果CPU

年底来一波!顺丰科技Java后端开发一、二面面经-爱代码爱编程

一. 技术一面 自我介绍一分钟项目中遇到的困难,怎么解决的?服务端分页怎么做的?如何查看sql执行计划?项目中数据库用的什么?mysql中有哪些索引?聚集索引与非聚集索引解释下?为什么索引能加快查询速度?写两个sql查询吧:第一个:将学生按数学成绩由高到低排序;如果from子句两个表用“,”隔开,解释一下该子句的意思?确定降序是DEC吗?单词忘记拼了

深度剖析java多线程,从Java多线程入门给你讲到入土,建议收藏!-爱代码爱编程

基础概念 1.什么是程序、进程和线程? 程序:硬盘上的软件,比如QQ.exe。进程:打开QQ.exe,QQ在计算机内存中运行(running)。线程:进程里最小的执行单元。进程是资源分配的基本单位,线程是程序执行的基本单位。 2.创建线程的三种方式 (MyThread类)继承Thread类:重写(Thread类中的)run()方法。用MyThrea

Spring Boot 源码分析——RequestContextHolder 与 ThreadLocal-爱代码爱编程

笔者一直在思考 Shiro 如何通过 SecurityUtils 拿到当前用户。原来是对于每个 HTTP 请求,在 Java 中都会开启一个线程进行处理,这个线程内就存放了当前的请求与请求信息,Shiro 通过当前线程,就可以拿到对应的 HTTP 请求,从而拿到当前用户。 进一步考虑,Spring Boot 是如何实现这一过程的呢?Spring Boot

高效并发下的高速缓存和指令重排-爱代码爱编程

1. 前言 关于计算机系统处理器资源的高效使用,计算机系统设计就引入 高速缓存 以解决CPU 运算速度与主内存存储速度之间的速度不匹配问题;引入 指令重排 来提升 CPU 内部运算单元的执行利用效率。 提升计算机处理器的运算能力,最简单、最有效的手段是让计算机支持多任务处理,可以充分利用处理器的运算能力。当然计算机操作系统的运算能力不单单取决于处理器,

volatile关键字-爱代码爱编程

文章目录 概述特性JMM java内存模型可见性原子性有序性 概述 volatile是java虚拟机提供的轻量级同步机制,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级。 特性 保证可见性不保证原子性禁止指令重排JMM java内存模型 可见性原子性有序性可见性 指当多个线程访问同

多线程死锁的原因,用GDB如何调试-爱代码爱编程

前言 在找工作中,面试问到了这个,啥也不会,现在记录一下 一 死锁原因 多线程死锁的原因是多个线程同时被阻塞,它们中的一个或全部都在等待某个资源被释放,而该资源又被其他线程锁定。 产生死锁的四个必要条件: 互斥不可抢占请求保持循环等待死锁原因: 资源不够进程推进顺序不合适避免死锁方法: 加锁顺序加锁实现死锁检测二 用GDB调试死锁线程 2.

selenium 的三种等待-爱代码爱编程

1.直接等待 sleep(3)强制等待,线程休眠一定的时间,但是如果页面加载过快,但是仍需要强制等待 2.隐式等待 implicitily_wait(3),设置一个等待时间,轮询查找(默认是0.5秒)元素是否存在,3秒内每间隔0.5秒就自动寻找,知道就退出,3秒内找不到就抛出异常 但是为全局变量,但是如果设置的全局变量为100秒过大,若果只有一个加