并行,并发和锁的问题

来源:互联网 发布:黑客入侵网络考勤机 编辑:程序博客网 时间:2024/06/10 17:34

并行:多个处理器,从硬件角度真正意义的同时进行
多线程:只是逻辑上的并行,同一时刻还是只有一个线程发生
并发:并行和多线程都叫并发

关于锁:
不管并发并行,只要存在共享内存,就要考虑加锁的问题。

锁的实质:都是通过阻塞线程实现的(一个线程申请锁未释放,另一个锁再申请就会线程就会阻塞),区别就是这个锁作用的范围,是否多个进程可以共享这个锁。

几种锁的区别:(都是阻塞线程)
semphore:信号量,多个进程之间也可以用,多用于共享内存
mutex: 互斥锁,多个进程之间不能用,阻塞的,由操作系统唤醒。
自旋锁:和互斥锁相似,区别就是不是阻塞的,不是休眠然后被操作系统唤醒,而是自己占用cpu,一直查询锁是否被释放
dpdk自带的读写锁:
rte_write_lock: 该锁被申请后,其他线程不能读也不能写
rte_read_lock: 该锁被申请后,其他线程不能写
写时独占,读时共享 => 写的时候加写的锁,读的时候加读的锁。

0 0
原创粉丝点击