大家好!我在delphi中用Tthread类对象创建了多线程,看到帮助里说要避免多个线程同时访问全局变量。我是这样用的全局变量,请大家指点是否应该采取措施避免访问冲突。谢谢!var1,var2为全局变量 thread1和thread2 分别为不同的 线程类实例thread1和thread2同时运行,thread1动态改变某一个变量var1的值,thread2判断var1为某一个值时,做出别的动作,如改变var2的值。希望大家给予指点,小女子不胜感激!!1
调试欢乐多
SyncObjs;var
cs: TCriticalSection;主程序创建时
cs := TCriticalSection.Create;主程序销毁时
FreeAndNil(cs);线程访问变量时
cs.Enter ;
var1 := ...
cs.Leave ;最讨厌说什么……小女子什么什么的,让我……受不了非得回帖……
var1:boolean;
var2:integer;
thread1中将var1:=true
thread2中判断 var1为true时,var2:=10;
var1为false时,var2:=100;
我是这样使用的,请问还需要 使用临界区来避免访问全局变量var1冲突吗?希望大家能给予指点,不胜感激!!!!
var
T: Boolean
begin
T := True; //
end;asm
mov T, $01
end;
一条指令就可以完成, 另外线程去读不会有问题的
纯属个人意见