2021
09-04
09-04
分析Go语言中CSP并发模型与Goroutine的基本使用
目录一、并发实现模型1.1、多进程1.2、多线程1.3、协程二、共享内存与CSP三、Goroutine一、并发实现模型1.1、多进程在之前的文章当中我们曾经介绍过,进程是操作系统资源分配的最小单元。所以多进程是在操作系统层面的并发模型,因为所有的进程都是有操作系统的内核管理的。所以每个进程之间是独立的,每一个进程都会有自己单独的内存空间以及上下文信息,一个进程挂了不会影响其他进程的运行。这个也是多进程最大的优点,但是它的...
继续阅读 >
目录一、多态的含义二、抽象类与接口三、Golang中的接口四、总结一、多态的含义对于Java或者是C++而言,我们在使用变量的时候,变量的类型是明确的。但是如果我们希望它可以宽松一点,比如说我们用父类指针或引用去调用方法,但是在执行的时候,能够根据子类的类型去执行子类当中的方法。也就是说实现我们用相同的调用方式调出不同结果或者是功能的情况,这种情况就叫做多态。举个非常经典的例子,比如说猫、狗和人都是哺乳动物。...
目录一 点睛二 先看一个转义的例子三使用 text/template 进行处理四使用 html/template 进行处理一 点睛现在的网站包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(CrossSiteScripting,安全专家们通常将其缩写成XSS)的威胁,而静态站点则完全不受其影响。攻击者...
目录1.使用场景2.图解源码2.1四叉堆原理2.3timer是如何加入到timer堆上的?2.4Reset时timer是如何被操作的?2.5Stop时timer是如何被操作的?2.6Timer是如何被真正执行的?3.Timer使用中的坑3.1错误创建很多timer,导致资源浪费3.2程序阻塞,造成内存或者goroutine泄露本篇文章剖析下Go定时器的相关内容。定时器不管是业务开发,还是基础架构开发,都是绕不过去的存在,由此可见定时器的重要程度。我们不...