理解阻塞和非阻塞概念:
eg: open->read->close eg: open->while(read)->close read -> data received/receiving
spin lock:(from baidu)
是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。
Task A Task B -doing- -waiting- -done- -doing- ------- -done- done
从doing-done阶段时间/耗时要小,自旋锁临界区应设置更小,然而信号量则不一样,可以设置更大。
信号量同步也有两种方式:
a. up -> down
b. completion / wait for completion
Life is mess, don't let mess mess us.