VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1277|回复: 9

多线程共享访问全局变量的问题,太难了

[复制链接]

3

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-14 13:30:01 | 显示全部楼层 |阅读模式
我有个Tqueue队列,
一个线程不断往里加数据,另一个线程不断读,删. 这样常不定时出现地址错误,如何解决.  我用过临界区也不行,是不是我对临界区用法没用好.
  好像临界区只对同一段代码多线程访问才有效,全局变量到处用怎么办呢
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-15 11:15:02 | 显示全部楼层
试试同步
回复

使用道具 举报

2

主题

16

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-12-15 14:45:01 | 显示全部楼层
线程锁锁起来
回复

使用道具 举报

0

主题

8

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-12-17 17:45:01 | 显示全部楼层
临界区就是用来处理这个问题的
回复

使用道具 举报

3

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-12-19 00:30:01 | 显示全部楼层
1临界区:通过对多线程的串行化来访问共同的一段代码
我的代码不是共同的,每个线程访问地方不一样,应不是用临界区吧
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-12-19 09:30:01 | 显示全部楼层
应该是你没用好!
临界区就是实现同步的一种方法!
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-20 14:00:01 | 显示全部楼层
试试 TThreadList
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-20 19:15:01 | 显示全部楼层
TThreadList严重影响性能! 对于要求处理速度非常快的时候, TThreadList就不能胜任!
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-20 19:30:01 | 显示全部楼层
用信号量试试
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-12-20 22:45:01 | 显示全部楼层
用循环队列把,队列用静态数组来实现,不要用动态内存分配,这样速度会提升很多,也没有内存分配错误了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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