搜索
bottom↓
回复: 4

【请教】 使用同一个线程函数创建不同的线程的问题

[复制链接]

出0入0汤圆

发表于 2011-8-22 16:08:48 | 显示全部楼层 |阅读模式
最近在使用RTT的时候,遇到一个问题:

    我有一个线程函数 rt_function(); 创建了八个优先不同的线程,每一个线程启动时,都是调用这个rt_function()来作为该线程;线程可以正常启动,但是运行一段时间后,程序会无缘无故跑飞,根本不知道跑到哪里;跟踪也跟踪不了;试着将线启缩减到4个,程序可以正常运行;没有以上问题出现;
    是不是这个线程调用同一个线程启动函数,是会有这样的问题出现??理论上说应该不会有该问题啊,如果是线程切换的话会将所用的临时放到堆栈中保存,再运行另一个线程。。想不明白,我的堆栈放大到1K也没用。。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-8-22 16:56:22 | 显示全部楼层
你线程同步了吗?有没有设置防干扰?争夺资源什么的

出0入0汤圆

 楼主| 发表于 2011-8-22 17:23:59 | 显示全部楼层
线程同步??不是很明白,防干扰到没有做上去,不需要争夺资源,使同的是不同全局变量,都是独立的。

出0入0汤圆

发表于 2011-8-22 21:16:39 | 显示全部楼层
是否你代码中还是有些细节你没注意到?因为是相同的线程运行函数,那么对全局变量的访问应该要加锁的

出0入0汤圆

 楼主| 发表于 2011-8-23 08:55:30 | 显示全部楼层
应该不会有全局变量访问导致线程出错的问题;我使用一个二维数组作为全局变量,每个线程都有一个独立的全局变量,应该不会对线程有影响,不过可以试一下加个互拆量上去用着试一下,但是加了互斥量上去的话,感觉我的程序就改变了。我的想法是八个线程是同时跑的,但加了互斥量就变成了一个线程在运行,和我的想法不符,不过可以先试试。。具体还是没有找到原因
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 10:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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