共被编辑 1 次

版本 更新时间 贡献者 编辑原因 操作
#r1 7月30日 seq_ack117 创建问题 查看

task worker 是如何做到对连接对象的操作,不会影响到主进程的连接对象的呢?

task worker 随时都有可能改变一个fd对应的连接对象的发送缓冲区的数据和关闭连接对象,做这些操作的时候,主进程epoll_wait可能正好就返回了这个连接对象的事件,那么在对这个连接对象,读写数据时,如果不加锁,那么就一定会数据错乱或者已经在操作一个释放的对象, 那么就必须保证我跟异步进程,获取对象的时候,必须是互斥,保证我们只要拿到了,那就只能我来改,这样另外一方用fd找对象的的时候,就不会有问题,task_worker是加锁来完成的吗?但是如果是加锁的话,那么需要很多地方都需要加锁,这样肯定会影响性能。