傲慢与偏见 发表于 2022-10-11 14:41:43

关于线程许可锁的问题

一个方法添加了临界标志,主线程同时启动3条线程去方法该方法。当线程在执行的途中,主线程去调用这个方法程序就会卡死。按理说不应该把主线程调用放到最后进行列队处理吗?怎么会直接卡死呢?

Xelloss0618 发表于 2022-10-11 15:05:00

另外线程之间是同步并行,并不是队列
如果子线程进入了临界区,这时主线程再去尝试进入,就会卡死

傲慢与偏见 发表于 2022-10-11 23:32:34

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

感谢 X大解答!还有个问题请教一下,多线程访问公共变量\方法需要进行加锁。那么如果访问系统API函数呢?也是一样的吗?(我的意思是再调用API的时候系统会不会为了线程安全 自行加锁处理)

hs999xl 发表于 2022-10-12 09:17:06

前几天我写个程序,多线程访问同一个dll会出错,不知道啥原因

Xelloss0618 发表于 2022-10-12 15:00:47

傲慢与偏见 发表于 2022-10-11 23:32
感谢 X大解答!还有个问题请教一下,多线程访问公共变量\方法需要进行加锁。那么如果访问系统API函数呢? ...

大部分系统API是线程安全的,不需要加锁
只要不是多个线程访问同一个变量,一般不需要加锁

傲慢与偏见 发表于 2022-10-12 17:57:46

Xelloss0618 发表于 2022-10-12 15:00
大部分系统API是线程安全的,不需要加锁
只要不是多个线程访问同一个变量,一般不需要加锁 ...

谢谢, 那多线程访问方法 需要在方法里面加锁吗?
页: [1]
查看完整版本: 关于线程许可锁的问题