ICode9

精准搜索请尝试: 精确搜索
  • 面经-虚拟机-内存溢出2022-08-26 15:03:50

    内存溢出 项目中什么情况下会内存溢出,怎么解决的 1.误用固定大小线程池 当前线程任务超时后,其余任务将被加入任务队列中,任务对象所耗费的内存会导致整个堆内存耗尽,导致内存溢出异常。 解决方法: 不要用工具类提供的线程池来创建线程池。而是使用线程池时自己使用线程池的构造方法,根

  • 插曲-IO的演进2022-08-26 01:04:52

    在 Linux 内核中,一起皆是文件(fd)。 1. BIO 阻塞式 IO BIO,即 Blocking IO,是最原始的 IO,客户端的每次调用都会对应服务端的一个线程/进程,并且在服务端中 socket 数据传输或发送错误之前,socket 是阻塞的。其过程如下图: BIO 是阻塞的,面对高并发场景时,一个请求对应一个线程,线程多了导致

  • CountDownLatch+ThreadPool 优化统计报表2022-08-25 12:33:16

    一、功能要求 业务方要求每天发一个统计日报到用户邮箱、业务为统计每日的多项市场指标数据,因为数据表中数据量庞大,每项指标的SQL是单独的逻辑,所以要在一个接口内执行多个SQL,所以查询接口响应很慢,大概需要30s左右。 二、需求分析 统计报表页面涉及到的统计指标数据比较多,每个指标

  • 聊聊动态线程池的9个场景2022-08-25 09:33:41

    聊聊动态线程池的9个场景 大家好,我是小马哥。 线程池是一种基于 池化思想管理线程 的工具,使用线程池可以减少 创建销毁线程的开销,避免线程过多导致 系统资源耗尽。在 高并发以及大批量 的任务处理场景,线程池的使用是必不可少的。 如果有在项目中实际使用线程池,相信你可能会遇到以

  • Thread+isInterrupted+自定义(停止线程)2022-08-25 01:32:14

    1.interrupt终端线程 public static void main(String[] args) throws InterruptedException { //创建子线程 Thread thread1=new Thread(()->{ while (!Thread.currentThread().isInterrupted()){ System.out.println("子线程即

  • 彻底了解线程池的原理——40行从零开始自己写线程池2022-08-25 01:30:57

    前言 在我们的日常的编程当中,并发是始终离不开的主题,而在并发多线程当中,线程池又是一个不可规避的问题。多线程可以提高我们并发程序的效率,可以让我们不去频繁的申请和释放线程,这是一个很大的花销,而在线程池当中就不需要去频繁的申请线程,他的主要原理是申请完线程之后并不中断,而是

  • 操作系统学习笔记5 | 用户级线程 && 内核级线程2022-08-24 22:05:41

    在上一部分中,我们了解到操作系统实现多进程图像需要组织、切换、考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识。而本部分重点就是进程之间的切换。 参考资料: 课程:哈工大操作系统(本部分对应 L10 && L11 && L12) 实验:操作系统原理与实践_Linux - 蓝

  • 《Python源码剖析》PDF高清版试读2022-08-24 20:31:20

       《Python源码剖析》PDF高清版免费下载地址     内容简介  · · · · · · 作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入

  • (十三)主从同步2022-08-24 17:34:10

    主从同步的优点: 读写分离提高数据库并发处理能力 数据备份 高可用性。也就是当服务器出现故障或宕机的情况下,可以切换到从服务器上,保证服务的正常运行。 Binlog&Undolog 二进制日志(Binlog):存储的是一个又一个事件(Event),这些事件分别对应着数据库的更新操作,比如INSERT、UPDATE、DEL

  • (4.6)轻量级锁(锁膨胀、锁自选、偏向锁、锁消除)2022-08-24 16:34:27

    4.6 轻量级锁、偏向锁——Monitor升级 JDK6之前的加锁方式是:关联锁对象到Monitor进行加锁,Monitor是由操作系统提供的,加锁代价高。 JDK6之后,对加锁方式进行了优化,引入了轻量级锁、偏向锁等。 1. 轻量级锁 如果一个对象虽然有多个线程要加锁,但是加锁的时间是错开的(没有竞争),可以使用

  • 面经-wait与sleep的比较2022-08-24 15:02:25

    共同点: wait(),wait(long),sleep(long)的效果都是让当前线程暂时放弃CPU的使用权,进入阻塞状态。 不同点: 方法归属不同 sleep(long)是Thread的静态方法。 wait,wait(long)都是Object的成员方法,每个对象都有。 醒来时机不同 sleep(long)和wait(long)的线程都会在等待响应的毫秒数后醒

  • ThreadLocal 分析2022-08-24 13:04:56

    1. 先说说他的作用哦,提供线程内的局部变量,不同线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。   1. 线程并发:在多线程并发场景下   2. 传递数据:可以通过Threadlocal在同一线程,不同组件中传递公共变量  

  • 面经-并发-线程状态2022-08-24 12:03:03

    java中的线程状态       线程状态_五种状态vs六种状态 五种状态:操作系统层面 分到CPU时间的:运行 可以分到CPU时间的:就绪 分不到CPU时间的:阻塞    Java中的Runnable涵盖了操作系统中的就绪、运行、阻塞 I/O状态。      

  • Java工具篇之Disruptor高性能队列2022-08-24 12:01:30

    简介: disruptor适用于多个线程之间的消息队列,`作用与ArrayBlockingQueue有相似之处`,但是disruptor从功能、性能都远好于ArrayBlockingQueue,当多个线程之间传递大量数据或对性能要求较高时,可以考虑使用disruptor作为ArrayBlockingQueue的替代者。 Disruptor是英国外汇交易公司LM

  • 关于rt-thread调度器实现的底层代码分析2022-08-24 02:02:53

      本文使用了rt-thread自带的钩子函数和显示函数进行了实验,从rt-thread自带的延时函数rt_thread_delay()函数入手,对rt-thread系统的调度器进行分析。主要参考资料是野火的rt-thread手册和rt-thread官方文档,汇编部分的指令是参考的cortex-M3权威参考手册,实验版本是rt-thread3.1.5

  • 面试--集合2022-08-23 23:00:28

    ☺ 集合重点---HashMap 可以看一下文章《从HashMap的执行流程开始 揭开HashMap底层实现》 一、集合 1、说说List、Set、Map三者的区别? 谈及元素的有序性、重复性,Map的键值对结构 答:List 存储的元素是有序的,可以重复的;而 Set 存储的元素是无序的,不可以重复的; Map 是以 key-value

  • parallelStream和Stream2022-08-23 17:31:19

    1. 什么是流? Stream是java8中新增加的一个特性,被java猿统称为流. Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要

  • C#中锁的使用分类2022-08-23 16:01:36

    1 互斥锁lock(基于Monitor实现)定义: private static readonly object Lock = new object(); 使用: lock (Lock){  //todo} 作用:将会锁住代码块的内容,并阻止其他线程进入该代码块,直到该代码块运行完成,释放该锁。 注意:定义的锁对象应该是 私有的,静态的,只读的,引用类型的对象,这样可以防

  • 线程池执行流程图2022-08-23 15:31:01

    public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQ

  • CountDownLatch demo演示数据分片多线程处理2022-08-23 14:00:46

    # CountDownLatch demo演示数据分片多线程处理 package com.example.core.mydemo; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.

  • java线程的学习2022-08-23 10:03:53

    1什么是线程   进程是程序执行的一次过程,它是一个动态的概念,是系统资源分配的单位,通常一个进程中可以包含若干个线程,线程就是独立执行的路径。线程的执行存在优先权问题 2java中线程的创建   (1)继承Thread类,重写run方法,run方法中编写线程执行体,创建线程对象,调用start()方法启动线

  • Java多线程2022-08-23 08:02:51

    1.实现多线程 1.1进程和线程【理解】 进程:是正在运行的程序 ​ 是系统进行资源分配和调用的独立单位 ​ 每一个进程都有它自己的内存空间和系统资源 线程:是进程中的单个顺序控制流,是一条执行路径 ​ 单线程:一个进程如果只有一条执行路径,则称为单线程程序 ​ 多线程:一个进程如

  • 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况2022-08-22 23:31:10

    1.   安装JMeter及使用 1.1下载JMeter 登录官方网站找到下载链接进行下载:https://jmeter.apache.org/download_jmeter.cgi   1.2配置环境变量 配置JMeter环境变量 新建变量名 JMETER_HOME 值为:JMeter解压目录\bin(下载的文件解压目录) 安装Java8+ 参考文章:https://blog.csdn.net/

  • springboot使用@Async实现异步调用2022-08-22 20:03:25

    异步与同步 同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。 常规的异步调用处理方式 在Java中,一般在处理类似的场景之时,都是基于创建独立的线程去完成

  • 【并发操作】协程,线程,进程是什么,在Python中怎么应用?2022-08-22 20:01:55

    前言 生活中的多任务时时刻刻存在,例如小张一边码字一边看屏幕,又例如小蔡可以一边跳舞一边打篮球,这就是生活中的多任务。那么计算机中的多任务是什么呢、怎么使用呢?就让我们一起探讨计算机中,多任务-线程、多任务-进程、多任务-协程的理解以及在Python中的应用。 多任务 多任务处理

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有