递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库

关于线程许可锁的问题

查看数: 4169 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-10-11 14:41

正文摘要:

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

回复

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

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

大部分系统API是线程安全的,不需要加锁
只要不是多个线程访问同一个变量,一般不需要加锁
hs999xl 发表于 2022-10-12 09:17:06
前几天我写个程序,多线程访问同一个dll会出错,不知道啥原因
傲慢与偏见 发表于 2022-10-11 23:32:34
Xelloss0618 发表于 2022-10-11 15:05
另外线程之间是同步并行,并不是队列
如果子线程进入了临界区,这时主线程再去尝试进入,就会卡死 ...

感谢 X大解答!还有个问题请教一下,多线程访问公共变量\方法需要进行加锁。那么如果访问系统API函数呢?也是一样的吗?(我的意思是再调用API的时候系统会不会为了线程安全 自行加锁处理)
Xelloss0618 发表于 2022-10-11 15:05:00
另外线程之间是同步并行,并不是队列
如果子线程进入了临界区,这时主线程再去尝试进入,就会卡死

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-6 03:23 , Processed in 0.086787 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表