随笔分类 - 多线程和锁
摘要:1.进程间的通信方式 套接字(socket ): 不同设备间 管道( pipe ):半双工,数据只能单向流动,父子进程间通信 有名管道 (namedpipe): 半双工的通信方式,允许无亲缘关系进程间的通信。 信号量(semophore ):信号量是一个计数器,多个进程对共享资源的访问。进程间以及同
阅读全文
摘要:1.基于redis实现分布式锁 setnx key val:根据返回值判断加锁是否成功。锁的value值为一个随机生成的UUID,释放锁的时候进行判断。 127.0.0.1:6379> setnx lck 123 (integer) 1 127.0.0.1:6379> setnx lck 123 (
阅读全文
摘要:1. :单线程vs多线程 线程共享:堆,文件描述符,信号处理函数,全局变量。 线程独占:栈空间,寄存器。 2. 线程的几种退出方式 1. 子线程使用return退出,主线程中使用pthread_join回收线程。如果是detach线程由系统自动回收。join线程有主线程进行回收。 2.子线程使用pt
阅读全文
摘要:一个进程在内存里有三部分的数据,就是"代码段"、"堆栈段"和"数据段"。 fork和vfork区别1. fork ():子进程拷贝父进程的数据段,代码段,堆栈段。子进程复制代码段和堆栈段容易理解,子进程复制数据段体现在:子进程对数据的修改不会影响父进程。 vfork ( ):子进程拷贝父进程代码段,
阅读全文