“为了防止多个线程同一时间执行相同的一段代码使用lock”这个说法不太正确,使用lock是为了让多个线程一个一个访问它们所共有的资源,所以让这段代码一次只有一个线程执行只是手段,不是目的。
要说效率,没有比较过。
毫无依据地、只是“我认为”:开5个线程分别执行一段加lock的代码应该没有直接把这段代码循环5遍效率高,因为毕竟要消耗资源分配线程以及切换线程吧。
上面说的是对的.lock锁的其实是代码.并不是资源.lock的这段代码确实是单线程的.同时只会有一个线程在执行,
但效率的话就要看你怎么lock,跟语法没关系.
不是单线程,是串行执行,效率比单线程低。
对于独享资源需要使用lock 确保 线程之间没有竞争的使用!
lock的地方,一次只能有一个线程通过,其他线程排队。题主,你自己想想!
今天我突然也想到这个问题,和楼主想到的是同一个想法,那这样的话那还要多线程干嘛呢?疑惑?
因为不是每个地方都要独占资源的啊,不是独占的就是并行执行了
我也在思考这个问题,自己的理解:当执行操作同一资源时,因为有锁,确实是只有一个能跑。但是创建多线程之后,操作同一资源前,这段时间是多线程同时跑
我也在思考这个问题,自己的理解:当执行操作同一资源时,因为有锁,确实是只有一个能跑。但是创建多线程之后,操作同一资源前,这段时间是多线程同时跑
– Cps-Ferris 2年前