ChinaUnix.net
相关文章推荐:

线程内全局变量

一个全局的标志flg(该标志只在A线中改变),其他线均需要读取该标志进行条件判断 if (flg == 1) { do something}。 疑问: 这种情况下是否需要对该采取互斥? 标志会不会在if判断后做{}中的语句时候改变呢? 那 if (flg == 1) {加锁; do something; 解锁;} 能安全吗? 还是必须也要对flg加锁?

by 什么名 - C/C++ - 2008-10-28 22:43:02 阅读(6300) 回复(17)

相关讨论

我的应用时这样的:主线创建线用于检测按键是否按下,然后主线while(1)循环,不断地采集摄像头的数据在屏幕上显示,一旦检测到按键按下,则拍照,保存图片。问下,这种线间的通信可以采用消息队列好还是采用全局变量好?平台环境是linux。 我的疑问是:linux下的消息队列一般是用于进间通信,而且msgrcv是阻塞的。如果在while循环调用msgrcv,阻塞的话,那么就录像就会停止。应用的话,我用全局变量来做,加了锁,没...

by 和尚VS秃头 - Linux环境编程 - 2014-04-28 11:37:18 阅读(3012) 回复(3)

本帖最后由 zqy1005 于 2010-06-16 15:03 编辑 RT 好了 我上代码 然后再进一步叙述我的发问[code] #include #include #include int a = 800; int main(void) { pid_t pid; if ((pid = fork()) == -1) { perror("fork error"); exit(1); } if (pid == 0) { a = 80; printf("this child %d \n", a); } else { wait(NULL); printf("%d \n", a); exit...

by zqy1005 - C/C++ - 2010-09-13 12:05:41 阅读(3669) 回复(7)

序原理是这样: 每次客户端去连接该序时,就去创建一个新的线。 即一个客户端对应一个线。 而这一个线里面后面又创建了两个子线,这两子线的作用分别是记录向各序所发的命令和该序收到的数据。 现在就是在这两个线实现函数定义一个全局变量a int a; 然后在send() { if(a==1) 记录东西; } recv() { if(匹配时) a=1; } 就是说当接收数据与某东西相匹配时候,a=1,而这时候send()...

by liumilan2009 - C/C++ - 2010-01-05 15:55:43 阅读(13717) 回复(8)

: 主线-->sigsetjmp() --> pthread_create() --> do other things ... \ -> 子线 --> siglongjmp() 子线jump后是不是序回到setjmp时的状态? 还是会循环的派生出很多线出来?

by maxxfire - C/C++ - 2009-04-21 09:48:36 阅读(1068) 回复(0)

在主线中创建多个子线,每个子线都有一个计数器,处理一条数据计数器加一, 在主线中怎样获取子线的计数器,来监测子线的处理情况呢? 谢谢!

by Hotown - C/C++ - 2006-01-17 16:02:19 阅读(9413) 回复(19)

我的每个线都要定时接收client的#define ALIVE *** 消息 ,到时间没接收到就认为client已经断线,close(fd).现在想用 sleep + 计数 或者alarm 但不知道sleep 和alarm 只作用于当前线还是整个进

by wang9736 - C/C++ - 2007-10-26 10:41:36 阅读(1869) 回复(3)

Turbo Linux 8.0平台下的多线序,我希望在线中sleep数秒,在网上看到这样的描述: =============== 除了使用 delay 来达成同步的效果外,另一个错误发生在 sleep 系统呼叫;如同exit 对 process 的影响一样,当 thread 呼叫 sleep 时,讲导致整个 process 停下来。这表示所有属于这个 process 的 thread 也将跟着停顿下来。因此在上面这个式中,呼叫 sleep 除了平白让序慢了20秒,并不会有什么额外影响。...

by BlackSnail - 程序开发 - 2005-02-05 21:20:27 阅读(747) 回复(1)

Turbo Linux 8.0平台下的多线序,我希望在线中sleep数秒,在网上看到这样的描述: =============== 除了使用 delay 来达成同步的效果外,另一个错误发生在 sleep 系统呼叫;如同exit 对 process 的影响一样,当 thread 呼叫 sleep 时,讲导致整个 process 停下来。这表示所有属于这个 process 的 thread 也将跟着停顿下来。因此在上面这个式中,呼叫 sleep 除了平白让序慢了20秒,并不会有什么额外影响。...

by BlackSnail - Linux环境编程 - 2005-02-05 21:20:27 阅读(1587) 回复(1)

大家好,小弟碰到了这个一个问题: 在GUI使用WindowsProc操作全局变量时报错,其中多个窗口都使用了WindowsProc做为消息定阅的处理函数,而多个窗口可能收到消息并且马上处理同一份全局数据,所以GUI报错,还请大家给想个好办法解决 小弟想过几种方法, 1:临界区 CCriticalSection,该方法是用来解决多个线处理用一份数据的,不知能不能解决这个问题 2:互斥 CMutex ,用来多线多进数据同步加锁处理,没试过,不知道能不能解决函数操作...

by 死猫皮 - C/C++ - 2004-12-10 09:03:51 阅读(1362) 回复(2)

#!/bin/perl use IO::Socket; use threads; use strict; my $ipHead="192.168.4."; our @iplist=(); my @ips; for(my $i=1;$i<255;$i++){push(@ips,$ipHead."$i");} my $thread; my @threads; print localtime."\n"; for(my $j=0;$j<@ips;$j++){$threads[$j]=threads->new(\&portScaner,$ips[$j]);} foreach my $threadinstance(@threads){$threadinstance->join();} #foreach my $ip(@ips){&portScaner($ip);} print localtim...

by swgaylz2008 - Perl - 2013-04-29 20:21:31 阅读(1842) 回复(9)