会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
bili111
博客园
首页
新随笔
联系
管理
订阅
上一页
1
2
3
4
5
6
7
8
下一页
2017年8月16日
ReentrantLock的底层实现机制 AQS
摘要: ReentrantLock的底层实现机制是AQS(Abstract Queued Synchronizer 抽象队列同步器)。AQS没有锁之类的概念,它有个state变量,是个int类型,为了好理解,可以把state当成锁,AQS围绕state提供两种基本操作“获取”和“释放”,有条双向队列存放阻塞
阅读全文
posted @ 2017-08-16 15:12 bili111
阅读(2374)
评论(1)
推荐(0)
2017年8月11日
分布式系统 SOA与中间件
摘要: 在分布式系统中,有一个基础的理论 CAP,Consistency一致性 Availability可用性 Partition Tolerance分区容忍性,任何一个系统都不可能同时满足这三个条件(高富帅或白富美很难同时满足),结构化存储(关系型数据库 RDBMS)满足的是CA,半结构化存储(Mongo
阅读全文
posted @ 2017-08-11 13:52 bili111
阅读(1729)
评论(0)
推荐(0)
2017年8月10日
微信网页版 手机扫码登陆实现原理
摘要: QQ邮箱扫码登陆、淘宝网扫码登陆、微信网页版扫码登陆,你知道这些功能的实现原理吗,为什么手机扫一扫,浏览器客户端就登陆进去了?你有没有产生过这种好奇心,心中多问几个为什么。 当浏览器访问微信服务端时,服务端会将一个UID(全局唯一的)返回给浏览器,并封装到一个二维码中。同时,维持一个长连接,例如规定
阅读全文
posted @ 2017-08-10 11:16 bili111
阅读(607)
评论(0)
推荐(0)
2017年8月9日
Epoll
摘要: 一个服务端同时可以接受多个客户端的连接,每个连接都是一个SocketChannel(Channel中的一种),这些Channel共同连接到Selector上(服务端仅需要一个选择器),channel会注册感兴趣的事件到Selector中,当调用Select方法返回后,会遍历所有的套接字描述符(服务端
阅读全文
posted @ 2017-08-09 17:03 bili111
阅读(225)
评论(0)
推荐(0)
2017年8月7日
网络虚拟化 SDN
摘要: 一.Linux Bridge :Linux中的网桥 假设宿主机有 1 块与外网连接的物理网卡 eth0,上面跑了 1 个虚机 VM1,现在有个问题是: 如何让 VM1 能够访问外网? 至少有两种方案 将物理网卡eth0直接分配给VM1,但随之带来的问题很多: 宿主机就没有网卡,无法访问了; 新的虚机
阅读全文
posted @ 2017-08-07 11:28 bili111
阅读(1239)
评论(0)
推荐(0)
2017年8月5日
Linux 磁盘
摘要: 一台物理服务器通常有好几块磁盘(/dev/sda,/dev/sdb),每个磁盘上都可以进行分区(例如对sda进行分区操作:fdisk /dev/sda,可以将sda分成sda1,sda2,sda5等分区,在设置分区的时候可以设置分区的大小)。 如何查看服务器磁盘的整体情况呢?使用lsblk命令 如何
阅读全文
posted @ 2017-08-05 17:48 bili111
阅读(290)
评论(0)
推荐(0)
分布式存储系统 Ceph
摘要: 你了解Ceph吗? Ceph是一种分布式存储系统,它可以将多台服务器组成一个超大集群,把这些机器中的磁盘资源整合到一块儿,形成一个大的资源池(PB级别),然后按需分配给应用使用。 那么你知道Ceph的架构吗? Ceph的底层实现是RADOS,RADOS是由C++写的,但是它向外界暴露了调用接口,即L
阅读全文
posted @ 2017-08-05 10:46 bili111
阅读(8644)
评论(0)
推荐(0)
2017年8月4日
邮件是如何发送的
摘要: 你知道在计算机世界里面是如何发送邮件的吗? google邮件服务器,是由很多台机器组成的集群,里面存放的是所有用户的邮件内容。如果你申请了google邮箱的帐号,那么在这个分布式存储系统中就会分一块空间给你使用(例如10G,是动态分配的)。 用户代理就是一个客户端,例如Foxmail,OutLook
阅读全文
posted @ 2017-08-04 11:10 bili111
阅读(389)
评论(0)
推荐(0)
2017年8月2日
多线程优化 锁升级
摘要: monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖操作系统互斥(mutex)来实现的(系统调用)。互斥是一种会导致线程挂起,并在较短的时间内又需要重新调度回原线程的,较为消耗资源的操作。 JDK1.6对线程进行了优化,目的就是减少多线程编程下对锁
阅读全文
posted @ 2017-08-02 21:03 bili111
阅读(607)
评论(0)
推荐(0)
java对象在JVM堆中的数据结构
摘要: java对象和数组是存放在堆中的,那么这些instance的数据结构是什么呢? 对象头:对象头存放的是这个对象的一些元数据信息。例如每个对象都有哈希值,GC分代年龄,锁状态标志等,这些信息就是存放在对象头中。 第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC
阅读全文
posted @ 2017-08-02 15:05 bili111
阅读(2877)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
下一页
公告