死锁通常是由于多个线程互相等待对方持有的资源造成的,预防死锁的基本策略包括:避免嵌套互斥锁,按顺序申请多个锁,使用超时机制尝试获取锁,以及合理设计锁的粒度和持有时间,良好的编程实践和代码审查也是防止死锁的重要措施。
读锁:线程在读取共享资源之前需要先获取读锁,可以使用pthread_rwlock_rdlock函数进行加锁。 pthread_rwlock_rdlock(&rwlock); 写锁:线程在写入共享资源之前需要先获取写锁,可以使用pthread_rwlock_wrlock函数进行加锁。 pthread_rwlock_wrlock(&rwlock); 解锁:无论是读锁还是写锁,都需要在完成操作后释放锁,可以使用pt...
8.设计题:100w个用户访问服务器,要求:读写互斥、不能用锁和信号量、不能等待(答的无锁编程,实际要队列) 9.tcp怎么保证可靠性(重传机制) 10.tcp怎么判断丢包了(超时、3次ack) 11.超时时间怎么计算的 12.拥塞控制 13.窗口阈值怎么确定的 算法A类中注册B类的回调函数,如何保证在A析构时回调函数不会发生野指...