当前位置: 技术问答>linux和unix
如果遇到多层函数调用,使用一次上锁解锁可以保证数据的线程独立性么
来源: 互联网 发布时间:2016-03-23
本文导语: 如果一个函数A调用B,B再调用C,....,Y最后调用Z。我的程序产生3个线程,3个线程并行的调用A,象下面这样: .... pthread_mutex_lock(&mutex); A(); pthread_mutex_unlock(&mutex); .... 可以保证调用B,C.....Z时各层函数中的数据对每个...
如果一个函数A调用B,B再调用C,....,Y最后调用Z。我的程序产生3个线程,3个线程并行的调用A,象下面这样:
....
pthread_mutex_lock(&mutex);
A();
pthread_mutex_unlock(&mutex);
....
可以保证调用B,C.....Z时各层函数中的数据对每个线程都是独立于其它线程么?谢谢
....
pthread_mutex_lock(&mutex);
A();
pthread_mutex_unlock(&mutex);
....
可以保证调用B,C.....Z时各层函数中的数据对每个线程都是独立于其它线程么?谢谢
|
我之前说的情况不会导致死锁。但你这样的做法,效率是非常低下的。
另外,如果其他线程直接调用 B 函数, 你的用法就没什么意义了。
另外,如果其他线程直接调用 B 函数, 你的用法就没什么意义了。
|
函数的局部变量 在每个线程是独立的,每个线程有各自的copy,不需要加锁
一般都是锁全局变量
一般都是锁全局变量
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。