#syn

由浅入深聊聊Golang的sync.Map

今天在技术群中有小伙伴讨论并发安全的东西,其实之前就有写过map相关文章:由浅入深聊聊Golang的map。但是没有详细说明sync.Map是怎么一回事。回想了一下,竟然脑中只剩下“两个map、一个只读一个读写,xxxxx”等,关键词。有印象能扯,但是有点乱,还是写一遍简单记录一下吧。1.为什么...

Golang sync.NewCond条件锁的用法

packagemainimport("fmt""sync""time")funcmain(){c:=sync.NewCond(&sync.Mutex{})queue:=make([]interface{},0,10)removeFromQueue:=func(delaytime.Duration){time.S...

go语言标准库sync/atomic中的原子操作

原子操作吧其他同步技术更底层。他们没有锁,基本是在硬件层面实现的。事实上,他们经常被用来实现其他同步技术。请注意,下面的许多例子并发并发编程。他们仅用于来展示如何使用标准库中的sync/atomic包中的原子函数。标准库中的sync/atomic对整数类型T(包含int32,int64,uint32,uint64,ui...

golang 中 sync.Mutex 和 sync.RWMutex

golang中的sync包实现了两种锁:Mutex:互斥锁RWMutex:读写锁,RWMutex基于Mutex实现Mutex为互斥锁,Lock()加锁,Unlock()解锁在一个goroutine获得Mutex后,其他goroutine只能等到这个goroutine释放该Mutex使用Lock()加锁后,不能再继续对其...
代码星球 ·2020-10-02

使用 Load Balancer,Corosync,Pacemaker 搭建 Linux 高可用集群

由于网络架构的原因,在一般虚拟机或物理环境中常见的用VIP来实现双机高可用方案,无法照搬到Azure平台。但利用Azure平台提供的负载均衡或者内部负载均衡功能,可以达到类似的效果。本文介绍如何基于AzureLoadBalancer(LB),结合Linux开源的产品DRBD,Pacemaker和Corosync实现Ma...

asyncio并发编程

asyncio是python3.4以后引进的用于解决异步io编程的一整套解决方案tornado、gevent、twisted(scrapy、djangochannels)都使用了asyncio讲解asyncio的简单使用:importasyncioimporttimeasyncdefget_html(url):prin...
代码星球 ·2020-09-25

Python使用asyncio+aiohttp异步爬取猫眼电影专业版

asyncio是从pytohn3.4开始添加到标准库中的一个强大的异步并发库,可以很好地解决python中高并发的问题,入门学习可以参考官方文档并发访问能极大的提高爬虫的性能,但是requests访问网页是阻塞的,无法并发,所以我们需要一个更牛逼的库aiohttp,它的用法与requests相似,可以看成是异步版的re...

async/await 实现协程

在了解异步协程之前,我们首先得了解一些基础概念,如阻塞和非阻塞、同步和异步、多进程和协程。2.1阻塞阻塞状态指程序未得到所需计算资源时被挂起的状态。程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的。常见的阻塞形式有:网络I/O阻塞、磁盘I/O阻塞、用户输入阻塞等。阻塞是无处不在的,包括C...
代码星球 ·2020-09-25

python异步编程之asyncio(百万并发)

前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板,如最新的微服务框架japronto,resquestspersecond可达百万级。 python还有一个优势是库(第...

asyncio

asyncio是Python3.4版本引入的标准库,直接内置了对异步IO的支持。asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。用asyncio实现Helloworld代码如下:importas...
代码星球 ·2020-09-24

golang中sync.RWMutex和sync.Mutex区别

golang中sync包实现了两种锁Mutex(互斥锁)和RWMutex(读写锁),其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能.typeMutex  func(m*Mutex)Lock()  func(m*Mutex)Unlock()typeR...

Golang sync.WaitGroup的用法

经常会看到以下了代码:12345678910111213packagemainimport("fmt""time")funcmain(){fori:=0;i<100;i++{gofmt.Println(i)}time.Sleep(time.Second)}主线程为了等待goroutine都运行完毕,不得不在程序的...
代码星球 ·2020-09-24

SpringBoot异步任务EnableAsync

什么是一部任务和使用场景:适用于处理log、发送邮件、短信...等下单接口->查库存1000余额校验1500风控用户1000启动类里面使用@EnableAsync注解开启功能,自动扫描定义异步任务类并使用@Component标记组件被容器扫描,异步方法加上@AsyncTestController.java测试&n...

dd命令的conv=fsync,oflag=sync/dsync

1.syncPadeveryinputblocktosizeof'ibs'withtrailingzerobytes.Whenusedwith'block'or'unblock',padwithspacesinsteadofzerobytes.2.fdatasyncSynchronizeoutputdatajustbe...
代码星球 ·2020-09-22

Promise及Async/Await

 我们都知道已经有了Promise的解决方案了,为什么还要ES7提出新的Async/Await标准呢?答案其实也显而易见:Promise虽然跳出了异步嵌套的怪圈,用链式表达更加清晰,但是我们也发现如果有大量的异步请求的时候,流程复杂的情况下,会发现充满了屏幕的then,看起来非常吃力,而ES7的Async/A...
代码星球 ·2020-09-12
首页上一页...2223242526...下一页尾页