peter peter
4年前
Golang WaitGroup 原理深度剖析
sync.WaitGroup是Golang中常用的并发措施,我们可以用它来等待一批Goroutine结束。WaitGroup的源码也非常简短,抛去注释外也就100行左右的代码。但即使是这100行代码,里面也有着关乎内存优化、并发安全考虑等各种性能优化手段。本文将基于go1.13的源码进行分析,将会涉及以下知识点:1
Easter79 Easter79
3年前
springboot之Redis的使用
springboot对常用的数据库支持外,对nosql数据库也进行了封装自动化。redis介绍Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes,lists,sets等,同时支持数据持久化。除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主从库。
Karen110 Karen110
3年前
一篇文章带你了解Django ORM操作(进阶篇)
回顾上次咱们学习了一下DjangoORM的基本查询操作。查询操作主要使用的是filter()方法。我们知道filter()查询出来的是值,如果想取第一个值需要再filter().first()才行。还知道了get()和filter().first()的区别等等。DjangoORM的查询还有很多,继续来看叭!!!查询操作对象.外键字段比如,我们拿到了一个
Wesley13 Wesley13
3年前
MySQL —— 存储引擎的 InnoDB 与 MyISAM 之争
作为MySQL数据库的两种主要的存储引擎,InnoDB与MyISAM各有长处。在MySQL5.1及之前的版本中,MyISAM是默认的存储引擎,而在MySQL5.5版本以后,默认使用InnoDB存储引擎。MyISAM不支持行级锁,换句话说,MyISAM会对整张表加锁,而不是针对行。同时,MyISAM不支持事务和外键。M
Easter79 Easter79
3年前
Swift中构造方法的解析
Swift中构造方法的解析一、引言     构造方法是一个类创建对象最先也是必须调用的方法,在ObjectiveC中,开发者更习惯称这类方法为初始化方法。在ObjectiveC中的初始化方法与普通函数相比除了要以init抬头外并无太严格的分界,而在Swift语言体系中,构造方法与普通的方法分界十分严格,从格式
Stella981 Stella981
3年前
ReentrantReadWriteLock实现原理
  在java并发包java.util.concurrent中,除了重入锁ReentrantLock外,读写锁ReentrantReadWriteLock也很常用。在实际开发场景中,在使用共享资源时,可能读操作远远多于写操作。这种情况下,如果对这部分共享资源能够让多个线程读的时候不受阻塞,仅仅在写的时候保证安全性,这样效率会得到显著提升。读写锁Reentra
Wesley13 Wesley13
3年前
MySQL——规范数据库设计
1.1、为什么需要设计当数据库比较复杂的时候,我们就需要设计了糟糕的数据库设计:数据冗余,浪费空间数据库插入和删除都会麻烦、异常【屏蔽使用物理外键】程序的性能差良好的数据库设计:节省内存空间保证数据库的完整性方便我们开发系统软件开发中
非凸科技 非凸科技
2年前
用Rust编写的Linux内核GPU驱动程序,或将到来
外媒Phoronix报道,AsahiLinix的核心开发者AsahiLina正在探索用Rust编程语言编写该DRM内核GPU驱动程序的可行性。如果成功了,这将是第一个用Rust语言编写的Linux内核GPU驱动程序。鉴于目前尚未有Rust编写的实际驱动程序代码,驱动程序的Rust实现有几种可能性:1.完全使用R
菜园前端 菜园前端
2年前
什么是堆?
原文链接:什么是堆?堆是一种特殊的完全二叉树。完全二叉树的含义就是每层节点都完全填满,除了最后一层外只允许最右边缺少若干个节点。在JavaScript中通常用数组表示堆(按照广度优先遍历顺序)。最大堆最小堆特性所有的节点都大于等于它的子节点(最大堆)或者所
京东云开发者 京东云开发者
8个月前
大数据实时链路备战——数据双流高保真压测
作者:京东零售京东零售一、大数据双流建设1.1数据双流大数据时代,越来越多的业务依赖实时数据用于决策,比如促销调整,点击率预估、广告分佣等。为了保障业务的顺利开展,也为了保证整体大数据链路的高可用性,越来越多的0级系统建设双流,以保证日常及大促期间数据流的