免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 12311 | 回复: 19
打印 上一主题 下一主题

主线程如何获取子线程内的数据? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-12 11:52 |只看该作者 |倒序浏览
在主线程中创建多个子线程,每个子线程都有一个计数器,处理一条数据计数器加一,
在主线程中怎样获取子线程的计数器,来监测子线程的处理情况呢?

谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-01-12 11:54 |只看该作者
原帖由 Hotown 于 2006-1-12 11:52 发表
在主线程中创建多个子线程,每个子线程都有一个计数器,处理一条数据计数器加一,
在主线程中怎样获取子线程的计数器,来监测子线程的处理情况呢?

谢谢!

最简单的办法就是使用全局变量。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
3 [报告]
发表于 2006-01-12 11:56 |只看该作者
全局变量,临界区

论坛徽章:
0
4 [报告]
发表于 2006-01-12 13:59 |只看该作者
谢谢!
总觉得使用全局变量不太好,还有别的方法吗?

BTW:是不是不提倡使用太多的全局变量?

[ 本帖最后由 Hotown 于 2006-1-12 14:17 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2006-01-12 14:34 |只看该作者
如果怕被程序的其它部分改掉,就加个锁,变成临界资源,如3楼。

论坛徽章:
0
6 [报告]
发表于 2006-01-12 14:56 |只看该作者
原帖由 soul_of_moon 于 2006-1-12 14:34 发表
如果怕被程序的其它部分改掉,就加个锁,变成临界资源,如3楼。



我需要创建多个线程,线程数目可以配置。
在程序运行中要不断监测各个线程的处理情况,如1s监测一次,如果用临界资源是不是会降低程序处理的速度?

论坛徽章:
0
7 [报告]
发表于 2006-01-12 15:04 |只看该作者
原帖由 Hotown 于 2006-1-12 14:56 发表



我需要创建多个线程,线程数目可以配置。
在程序运行中要不断监测各个线程的处理情况,如1s监测一次,如果用临界资源是不是会降低程序处理的速度?

用动态分配么。

论坛徽章:
0
8 [报告]
发表于 2006-01-12 15:59 |只看该作者
子线程的数目是动态配置的。
你有什么好的方案吗?谢谢!

论坛徽章:
0
9 [报告]
发表于 2006-01-12 16:07 |只看该作者
我现在用了一个static的map(等同于全局变量),用线程的ID作为key,以处理的数据的数目作为value,每个线程处理完一条数据,就把map中本线程对应的value加1。另创建一个线程(模拟监测线程)每隔1s打印一次map中各个线程处理的数据。
这样可以实现对各个线程的监测。但不知是否有问题?
请指点一下,谢谢!

论坛徽章:
0
10 [报告]
发表于 2006-01-12 16:10 |只看该作者
原帖由 Hotown 于 2006-1-12 15:59 发表
子线程的数目是动态配置的。
你有什么好的方案吗?谢谢!

定义一个结构,线程的信息放在结构里,每创建一个线程就增加一个结构对象,用一个全局指针串成链表,再对指针加个锁。不要再问下去了,再问,还不如我给你写呢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP