递归火山软件开发平台

标题: 关于线程许可锁的问题 [打印本页]

作者: 傲慢与偏见    时间: 2022-10-11 14:41
标题: 关于线程许可锁的问题
一个方法添加了临界标志,主线程同时启动3条线程去方法该方法。当线程在执行的途中,主线程去调用这个方法程序就会卡死。按理说不应该把主线程调用放到最后进行列队处理吗?怎么会直接卡死呢?


作者: Xelloss0618    时间: 2022-10-11 15:05
另外线程之间是同步并行,并不是队列
如果子线程进入了临界区,这时主线程再去尝试进入,就会卡死
作者: 傲慢与偏见    时间: 2022-10-11 23:32
Xelloss0618 发表于 2022-10-11 15:05
另外线程之间是同步并行,并不是队列
如果子线程进入了临界区,这时主线程再去尝试进入,就会卡死 ...

感谢 X大解答!还有个问题请教一下,多线程访问公共变量\方法需要进行加锁。那么如果访问系统API函数呢?也是一样的吗?(我的意思是再调用API的时候系统会不会为了线程安全 自行加锁处理)
作者: hs999xl    时间: 2022-10-12 09:17
前几天我写个程序,多线程访问同一个dll会出错,不知道啥原因
作者: Xelloss0618    时间: 2022-10-12 15:00
傲慢与偏见 发表于 2022-10-11 23:32
感谢 X大解答!还有个问题请教一下,多线程访问公共变量\方法需要进行加锁。那么如果访问系统API函数呢? ...

大部分系统API是线程安全的,不需要加锁
只要不是多个线程访问同一个变量,一般不需要加锁
作者: 傲慢与偏见    时间: 2022-10-12 17:57
Xelloss0618 发表于 2022-10-12 15:00
大部分系统API是线程安全的,不需要加锁
只要不是多个线程访问同一个变量,一般不需要加锁 ...

谢谢, 那多线程访问方法 需要在方法里面加锁吗?




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4