240 发简信
IP属地:湖北
  • 120
    消息队列探秘-Kafka全面解析

    背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证...

  • 超全面 spring 复习总结笔记

    前言 最近感触颇深,原谅我在开头写心情日记。介意的跳过看正文。 市场 趋势 近几年,技术市场对新人越来越不友好,社招几乎是三年经验起步。所以很多人都说能走校招千万别走社招,年...

  • 9.阻塞队列和线程池

    阻塞队列 特性 队列是空的时候,从队列获取元素的操作会被阻塞 队列是满的时候,往队列添加元素的操作会被阻塞 实现 线程池 定义 把并发任务传递给一个线程池,来替代为每个并发执...

  • 8. Java的Lock锁

    Lock和synchronized同步块一样,是线程的同步机制,而且锁是由synchronized同步块的方式进行实现的。 一个简单的锁实现 while(isLocked)循...

  • 7. 嵌套管程锁死&Slipped Condition

    场景介绍 lock()方法在this上同步,然后在monitorObject上同步。如果isLocked为true,调用lock()方法的线程会在wait()方法上阻塞。 如...

  • 6.饥饿和公平

    饥饿 如果一个线程因为CPU时间全部被其他线程抢走而得不到CPU运行时间,这种状态被称之为“饥饿”。 导致饥饿的原因 高优先级线程吞噬所有的低优先级线程的CPU时间 线程被永...

  • 5. 死锁

    线程死锁 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。 如果child和parent是同一个对...

  • 120
    4. Java线程通讯

    Busy Wait 一个线程间相互通信的方法是使用线程间共享对象的一个变量进行通信。 线程B等待线程A将hasDataToProcess的值设置为true,这种方法cpu利用...

  • 120
    3. Java多线程同步

    Java Synchronized 块 Synchronized块是用来解决race condition。Synchronized块是基于对象,作用在同一对象的同步快保证在同...

  • 120
    2. Java内存模型

    Java内存模型指定了JVM和计算机内存是如何进行协作 Java内存模型的原理 Java内存被分为线程栈和堆栈:JVM中的每个线程拥有一个自己的线程栈,线程栈中包含当前调用方...

  • 120
    1. Java多线程基本概念

    多线程的优点 资源利用率更好(等待IO的时间) 程序设计在某些情况下更简单(一个线程对应一个任务) 程序相应更快(不用实时去相应) 多线程的代价 设计更复杂(访问共享数据的机...

  • 面试算法:计算堆栈当前元素的最大值

    更详细的讲解和代码调试演示过程,请参看视频如何进入google,算法面试技能全面提升指南 有一道堆栈相关算法题,我被面试过两次以上,看似其在算法面试中出现的概率很高,由此值得...

  • 120
    查找(散列表)

    定义 散列表通过算术操作将键转化为数组的索引来访问数组中的键值对。散列表的查找算法分两步: 用散列函数将被查找的键转化为一个数组的索引 处理碰撞冲突(拉链法和线性探测法) 优...

  • 120
    查找(平衡查找树)

    平衡查找树 定义 父节点的左子树和右子树的高度之差不能大于1 2-3查找树 定义 2-3树运行每个节点保存1个或者两个的值。对于普通的2节点(2-node),他保存1个key...