![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
bobo哥
这个作者很懒,什么都没留下…
展开
-
golang time学习
1. time包初探 package main import ( "fmt" "time" ) func main() { time.Sleep(3e9) //停止三秒 for range time.Tick(time.Second*1){ fmt.Println("ok") //每秒打印一次 } } 这里是两个常见的time用法. time.Second*1为什么是一秒? 为什么 3e9 是三秒? 我们可以去time.Second源码里面查看下 const ( Nano原创 2021-12-28 11:31:10 · 290 阅读 · 0 评论 -
锁的种类
数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令。 锁的细分: 1、自旋锁 自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区 2、阻塞锁 可以说是让线程进入阻塞状态进行等待,当获得相应的信号(唤醒,时间) 时,才可以进入线程的准备就绪状态,准备就绪状态的所有线程,通过竞争, 进入运行状态。 JAVA中,能够进入\退出、阻塞状态原创 2020-07-08 09:32:38 · 430 阅读 · 0 评论 -
Go中锁的那些姿势,估计你不知道
什么是锁,为什么使用锁 用俗语来说,锁意味着一种保护,对资源的一种保护,在程序员眼中,这个资源可以是一个变量,一个代码片段,一条记录,一张数据库表等等。 就跟小孩需要保护一样,不保护的话小孩会收到伤害,同样的使用锁的原因是资源不保护的话,可能会受到污染,在并发情况下,多个人对同一资源进行操作,有可能导致资源不符合预期的修改。 常见的锁的种类 锁的种类细分的话,非常多,主要原因是从不同角度看,对锁的定义不一样,我这里总结了一下,画一个思维脑图,大家了解一下。 我个人认为锁都可以归为一下四大类,其它的叫法不同只原创 2020-07-08 09:31:14 · 216 阅读 · 0 评论