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

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

阅读 1.4k
1 个回答
新手上路,请多包涵

同问,围观,坐等

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进