let userIndex = this.userList.findIndex(q => q.userId == userId);
this.userList.splice(userIndex, 1);
环境是vuejs。
上面是我写的常规删除数组指定对象的代码。
但是,如果这个this.userList
是在高并发的场景下,可能在执行第二行删除逻辑的时候,就已经被修改过了,这个时候,有什么线程安全的做法吗?
写到这里,突然想到,js是单线程的。。。。是不是不存在我担忧的这个问题?
###是的,不存在你这种情况。js是单线程
顺便多说一句。你的删除效率是 n。删除n个就是 N N。如果真的是高并发,可以自己整个数据结构。或者说缓存几个,然后一并删除。删除的时候从后往前删。当然还得看你多高的并发。每秒几百个?还是每秒几个?*
###是的,不存在你这种情况
###看到 js 高并发,以为是 nodejs ,一看又是 vuejs,黑人问号。
浏览器端哪来的高并发?再高的并发,也是每个浏览器端自己跑自己的,互不干扰。