1. Linux四种锁机制
1.0、互斥锁:任何时刻,只有一个线程能够获取锁,获取锁失败的线程则进去休眠,等待锁释放唤醒;
1.1、互斥锁:在没有写锁的情况下,可以同时获取多个读锁;在有写锁的情况下,只有一个线程获取写锁,其他线程获取锁失败则进入睡眠,等待被唤醒,写锁优先;
1.2、自旋锁(spinlock):任何时刻只有一个线程可以获取锁,其他线程获取锁失败则不会进入睡眠,而是进入自旋状态,直到锁被释放;减少从睡眠到唤醒的时间,适用于加锁时间短的情况;但是如果获取锁的时间长的话,则会大量消耗CPU;
2.2、rcu锁(read-copy-update):在修改数据时,先读取数据,生成一份副本,在副本上修改,完成后再更新修改的副本数据到旧的数据;读者不需要同步开销,不需要获取锁,不需要原子操作,不会导致竞争;写者需要大量开销,使用锁机制和其他线程同步数据的修改;在读操作远远大于写操作时很高效。
2.进程、线程和协程的关系:
参考学习:https://www.cnblogs.com/guolei2570/p/8810536.html
3.redis 启动
启动:redis-server &
4.Golang调度器GMP原理与调度全分析
https://studygolang.com/articles/26921?fr=sidebar
5.http和https
https://blog.csdn.net/xiaoming100001/article/details/81109617
6.go 延时操作
time.NewTicker的使用