您好、欢迎来到现金彩票网!
当前位置:皮皮彩票app下载 > 共享变量 >

C中多个线程调用同一个方法方法的变量是公有变量怎样进行的调用

发布时间:2019-07-06 22:47 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部最简单的方法,把这个变量加锁,或者把函数方法加锁,使其同一时间只能被一个线程调用。但这样牺牲了效率,所以首先你还是得思考以下问题:1.这个变量值会被其他线的回答是否定的,那么线程之间应该不会受影响如果是肯定的,思考问题:2.一定要在其他线程中改变这个变量吗?

  追问我把那个公用的方法加锁了,但是当一个线程没有完成另外的线程又开始了,导致另外的线程存入的数值不准确。这怎么弄啊?追答检查你是否在该方法外的其他地方改变了你的公共变量。我个人比较倾向于加变量锁,这样更灵活高效一点,特别是函数执行周期比较长的时候。如果你把这个方法加锁了,一个线程在调用该方法的时候被中断(比如上下文切换),其他线程要调用该方法时会被挂起,处于等待状态直到上一个调用该方法的线程处理完该方法,因此我不太明白你说的存入数值不准的原因,能说下该方法和线程具体调用的过程吗?

  追问变量怎么加锁啊?麻烦你举个例子。多个委托方法,每个委托都有一个线程,每个线程都是调用的同一个存储方法。

  公有变量(我的理解是全局变量)一定会造成影响,如果不想影响,把公有变量改为方法中的局部变量

  展开全部在方法中进行变量访问时加入锁。简单的使用lock,或是根据实际情况使用读写锁。然后建议设置变量(应该是字段吧)为私有。外部需要访问的话使用只读属性进行访问。

http://divasrun.com/gongxiangbianliang/585.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有