procedure proc1;
begin
try
EnterCriticalSection(vCritical);
PushData(AStr);
finally
LeaveCriticalSection(vCritical);
end;
end;procedure proc2;
begin
try
EnterCriticalSection(vCritical);
PopData(AStr);
finally
LeaveCriticalSection(vCritical);
end;
end;第一个线程正在执行proc1, 如果另外一个线程要执行proc2, 是否要等第一个线程执行完proc1才能进入运行proc2 ? 因为这两个函数使用了同一个临界变量.
begin
try
EnterCriticalSection(vCritical);
PushData(AStr);
finally
LeaveCriticalSection(vCritical);
end;
end;procedure proc2;
begin
try
EnterCriticalSection(vCritical);
PopData(AStr);
finally
LeaveCriticalSection(vCritical);
end;
end;第一个线程正在执行proc1, 如果另外一个线程要执行proc2, 是否要等第一个线程执行完proc1才能进入运行proc2 ? 因为这两个函数使用了同一个临界变量.
begin
try
EnterCriticalSection(vCritical);
if type = 'push' then
PushData(AStr)
else if type = 'pop' then
PopData(AStr);
finally
LeaveCriticalSection(vCritical);
end;
end;