多个线程同时调用同一个函数(过程)会不会引起冲突?(50分)

  • 主题发起人 主题发起人 chrisfan
  • 开始时间 开始时间
同一个函数不会引发冲突,但是函数的变量,就有可能引发冲突。
比如A线程把变量a改变了,但是B线程要读取a的以前值。这样两个线程之间
就要打架了。一共又三种解决方法
1。但是把此变量声明为线程变量
threadvar
a : integer;
这样,a在每一个线程中就有一个变量映射,就是两个不同的变量。
2。线程同步,当线程A访问此函数时,把B挂起,a访问完以后在启动B
3。用消息。检查变量a是否改变。具体的方法已经忘了,呵呵
 
同意楼上的说法.
 
多人接受答案了。
 
后退
顶部