自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Zookeeper入门

Zookeeper最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。关于“ZooKeeper”这个项目的名字,其实也有一段趣闻。在立项初期,考虑到之前内部很多项目都是使用动物的名字来命名的(例如著名的Pig项目),雅虎的工程师希望给这个项目也取一个动物的名字。

2023-02-01 15:05:14 104 1

原创 【20220803作业①】Redis的扩容机制以及数据迁移机制

因为dictEntry数组默认大小是4,如果不进行扩容,那么数据会一直以链表的形式添加至数组下标,随着数据量越来越大,之前只需要hash取模就能得到下标位置,现在得去循环下标的链表,所以性能会越来越慢。所以,当数据量达到一定程度后,就得去触发扩容操作。

2022-09-20 22:24:54 433 1

原创 【20220608作业①】线程的BLOCKED状态和WAITING状态的区别

BLOCKED与WAITING

2022-07-13 11:05:02 1160 1

原创 ArrayList解读

ArrayList-》列表(集合),基于数组,支持自动扩容,2*n;实现接口List:有序集合,列表通常允许重复元素,在迭代器、 add 、 remove 、 equals和hashCode方法的契约上放置了除Collection接口中指定的那些之外的其他规定RandomAccess 标记接口(Marker),支持快速(通常是恒定时间)随机访问,主要目的是允许通用算法改变其行为,以在应用于随机或顺序访问列表时提供良好的性能 for (int i=0, n=list.size(); i

2021-10-23 15:17:11 108

原创 原子操作CAS

原子操作?操作在执行时要么完全执行,要么完全不执行,那这个操作就是原子的,故为原子操作。实现?其实现可使用锁机制。而synchoronized关键字是当一个线程拥有锁的时候其他线程需要等待锁的释放,是一种基于阻塞的锁机制,对于更加复杂的需求而言,使用这种粗糙,粒度较大的机制并不太合适。此外,原子操作的实现可以使用现代处理器基本支持的CAS指令。CAS?CAS,Compare And Swap 比较并交换。它通过比较操作获得的旧值与内存地址中存储的值是否相同,判断是否交换内存地址中的值为操作完成的

2021-10-23 11:07:33 52

原创 Java并发工具

Fork/Join分治思想。递归算法。将大任务拆分(fork)成若干个小任务,后将小任务的执行结果向上汇总(join)。Fork/Join中还有工作密取,当线程完成自己的任务后,可获取其他线程的任务执行,后返给被窃取线程以结果,减少大任务的处理速度,提高CPU利用率。Fork/Join可以让任务同步或异步执行。同步invoke(),异步submit()/execute()。在Java中对应类是ForkJoinTask,这是一个抽象类,Java提供有RecursiveTask 和 Recursive

2021-10-23 11:07:07 47

原创 【面试题】wait/notify实现生产者和消费者程序--子弹压入射出

面试题:采用多线程技术,例如wait/notify,设计实现一个符合生产者和消费者问题的程序,对某一个对象(枪膛)进行操作,其最大容量是20颗子弹,生产者线程是一个压入线程,它不断向枪膛中压入子弹,消费者线程是一个射出线程,它不断从枪膛中射出子弹。请实现上面的程序。编写枪膛对象:已知,其内含子弹。子弹最大容量为20。可压入或射出子弹。解析:子弹(数)- -成员变量,压入子弹- -方法1,射出子弹- -方法2。根据子弹最大容量,方法1压入子弹数不能超过20,方法2一次性射出子弹数不能超过20,即

2020-06-05 17:45:14 255

翻译 线程基础

线程基础、线程之间的共享与协作线程基础进程与线程CPU核心数与线程数之间的关系CPU时间片轮转机制并行与并发高并发编程线程基础进程与线程什么是进程进程是操作系统进行资源分配的最小单位。资源指的是内存空间,CPU,磁盘IO等等,也就是运行一个应用程序所需要的资源。它是应用程序的一次运行活动,是系统进行资源分配和调度的一个独立单位。进程可以分为用户进程和系统进程,用于完成操作系统的各种功能的进程就是系统进程,它们也是处于运行状态下的操作系统本身。由你启动的进程就是用户进程。什么是线程线程是CPU调

2020-06-04 20:29:30 405

原创 线程之间的共享与协作

线程之间的共享与协作线程之间的共享与协作共享synchronized协作线程之间的共享与协作共享synchronized private long count =0; private Object obj = new Object(); /*1.用在同步块上*/ public void sum1(){ synchronized (obj){ count++; } } /*2.用在方法上 隐藏synchronized(this)*/ public synchroniz

2020-06-04 20:15:35 228

原创 Java线程的一生

Java中的线程Java程序在运行时,除业务所用的线程外,还有后台守护线程,用于JVM执行资源关闭垃圾回收监听机制等等。所以Java中的程序天生便是多线程的。本章,将讲述Java中线程的使用。所谓"万物皆对象",在Java中,Thread类就是对线程的抽象。那么首先,在Java中是如何启动线程的呢?有2种方法:①继承Thread类;②实现Runnable接口;jdk1.5引入了第三种方式:实现Callable接口,但Callable的启动线程的形式与众不同。重写方法不是run(),是call();有

2020-06-04 17:20:09 235

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除