happlyfox happlyfox
4年前
[concurrent-map]-并发map在go中的使用
关于我通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施。引言Go语言原生的map类型并不支持并发读写。在Go1.9之前,go语言标准库中并没有实现并发map。在Go1.9中,引入了sync.Map。concurrentmap的优势concurrentm
Easter79 Easter79
3年前
synchronized 和 ReentrantLock的区别
synchronized是Java内建的同步机制,所以也有人称其为IntrinsicLocking,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取的线程只能等待或者阻塞在那里。在Java5以前,synchronized是仅有的同步手段,在代码中,synchronized可以用来修饰方法,也可以使用在特定的代码块
Stella981 Stella981
3年前
Raid5和Raid6读写速度一点实例对比(非严谨)
以前一直纠结,存储文件系统底层究竟用raid5做到读写和安全的兼顾,还是选择raid6以安全为主导牺牲性能呢?今日就给大家一点参考!数据源主机A型号:群晖1817,硬盘8个硬盘类型:sata10T存储冗余类型:raid5数据同步主机B型号:群晖18015,硬盘12个硬盘类型:sas16T存储冗余类型:raid6同步软件
Wesley13 Wesley13
3年前
Java并发(六):volatile的实现原理
synchronized是一个重量级的锁,volatile通常被比喻成轻量级的synchronizedvolatile是一个变量修饰符,只能用来修饰变量。volatile写:当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存。volatile读:当读一个volatile变量时,JMM会把该线程对应的
Wesley13 Wesley13
3年前
Java高级面试必问:AQS 到底是什么?
前言JDK1.5以前只有synchronized同步锁,并且效率非常低,因此大神DougLea自己写了一套并发框架,这套框架的核心就在于AbstractQueuedSynchronizer类(即AQS),性能非常高,所以被引入JDK包中,即JUC。那么AQS是怎么实现的呢?本篇就是对AQS及其相关组件进行分析,了解其原理,并领略大神的优美而又精简
Wesley13 Wesley13
3年前
Java的AQS
!(https://oscimg.oschina.net/oscnet/d87ee0244e37f312627f0d76446d7d6efc0.jpg)简介AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,为一系列同步器依赖于一个单独的原子变量(
Stella981 Stella981
3年前
Spring Boot中整合Sharding
在我《SpringCloud微服务全栈技术与案例解析》书中,第18章节分库分表解决方案里有对ShardingJDBC的使用进行详细的讲解。之前是通过XML方式来配置数据源,读写分离策略,分库分表策略等,之前有朋友也问过我,有没有SpringBoot的方式来配置,既然已经用SpringBoot还用XML来配置感觉有点不协调。其实吧我个人觉得只
Wesley13 Wesley13
3年前
C实现通讯录管理系统(亮点:纯链表实现、子串匹配,文件读写)
题目:通讯录管理程序问题描述编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。基本要求程序应提供的基本基本管理功能有:1) 添加:即增加一个人的记录到通信录中2) 显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。3) 存储:即将通讯录信息保存在一个文件中。4
京东云开发者 京东云开发者
10个月前
【转载】golang内存分配
Go的分配采用了类似tcmalloc的结构.特点:使用一小块一小块的连续内存页,进行分配某个范围大小的内存需求.比如某个连续8KB专门用于分配1724字节,以此减少内存碎片.线程拥有一定的cache,可用于无锁分配.同时Go对于GC后回收的内存页,并不是马
京东云开发者 京东云开发者
3个月前
【转载】golang内存分配
作者:钱文Go的分配采用了类似tcmalloc的结构.特点:使用一小块一小块的连续内存页,进行分配某个范围大小的内存需求.比如某个连续8KB专门用于分配1724字节,以此减少内存碎片.线程拥有一定的cache,可用于无锁分配.同时Go对于GC后回收的内存页