摘要:
乐观锁介绍:(乐观锁主要用于抢红包,淘宝抢购,秒杀之类) 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们 阅读全文
摘要:
select优点 1)select()的可移植性更好,在某些Unix系统上不支持poll() 2)select() 对于超时值提供了更好的精度:微秒,而poll是毫秒。 select缺点 1) 单个进程可监视的fd数量被限制。 2) 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空 阅读全文
摘要:
一 、IO操作本质 数据复制的过程中不会消耗CPU 1 内存分为内核缓冲区和用户缓冲区 2 用户的应用程序不能直接操作内核缓冲区,需要将数据从内核拷贝到用户才能使用 3 而IO操作、网络请求加载到内存的数据一开始是放在内核缓冲区的 二、 IO模型 BIO – 阻塞模式I/O 用户进程从发起请求,到最 阅读全文
摘要:
IO操作 IO分两阶段(一旦拿到数据后就变成了数据操作,不再是IO): 1.数据准备阶段 2.内核空间复制数据到用户进程缓冲区(用户空间)阶段 在操作系统中,程序运行的空间分为内核空间和用户空间。 应用程序都是运行在用户空间的,所以它们能操作的数据也都在用户空间。 阻塞IO和非阻塞IO的区别在于第一 阅读全文