第一步:
我建立了两个线程,第一个执行
while True do
begin
ABC1:='86868686';
end;第二个执行
while True do
begin
ABC2:='86868686';
end;
结果一运行立即死掉第二步:
于是我只建立一个线程执行:
while True do
begin
ABC1:='86868686';
end;
结果没出问题第三步:
我又建立两个线程,其中一个执行:
while True do
begin
Sleep(10);
ABC1:='86868686';
end;
另一个
while True do
begin
Sleep(10);
ABC2:='86868686';
end;
结果没出问题,但是第四步
我建立了10个线程依次执行:
while True do
begin
Sleep(10);
ABC1:='86868686';
end;while True do
begin
Sleep(10);
ABC2:='86868686';
end;while True do
begin
Sleep(10);
ABC3:='86868686';
end;while True do
begin
Sleep(10);
ABC4:='86868686';
end;
。
。
。
。
结果挂了那么我是不是能够得出结论,在多线程中,即使是对不同的寄存器进行操作也会有风险?
我建立了两个线程,第一个执行
while True do
begin
ABC1:='86868686';
end;第二个执行
while True do
begin
ABC2:='86868686';
end;
结果一运行立即死掉第二步:
于是我只建立一个线程执行:
while True do
begin
ABC1:='86868686';
end;
结果没出问题第三步:
我又建立两个线程,其中一个执行:
while True do
begin
Sleep(10);
ABC1:='86868686';
end;
另一个
while True do
begin
Sleep(10);
ABC2:='86868686';
end;
结果没出问题,但是第四步
我建立了10个线程依次执行:
while True do
begin
Sleep(10);
ABC1:='86868686';
end;while True do
begin
Sleep(10);
ABC2:='86868686';
end;while True do
begin
Sleep(10);
ABC3:='86868686';
end;while True do
begin
Sleep(10);
ABC4:='86868686';
end;
。
。
。
。
结果挂了那么我是不是能够得出结论,在多线程中,即使是对不同的寄存器进行操作也会有风险?
解决方案 »
- 谁有Delphi学习笔记-Win32基础篇这本电子书或资料(钱达智著)
- 莫名其妙的错误,大家帮帮忙
- sql 出错
- 为什么我安装了SpreadSheet 1.1.12后以前安装的DevExpressGrid4.5.2不能用了?运行Delphi时出错,该如何解决?
- delphi 快垮台了,大家散伙吧,唉
- 数据的修改和删除
- 谁给个图形界面的代码我啊?
- 不允许在30秒内连续刷同一张卡或不允许连续刷同一张卡,该怎么做
- 请问如果将自己写好的桌面数据库程序打包发表?急急
- 请问用ImageArray=TImage.Create(Self)怎样在GroupBox控件动态创建控件?
- FireMonkey 无法安装在此磁盘上.
- 请教三层结构中 主键问题
while True do
begin
WaitForSingleObject(ABCMux,INFINITE);
ABC1:='86868686';
ReleaseMutex(ABCMux);
end;while True do
begin
WaitForSingleObject(ABCMux,INFINITE);
ABC2:='86868686';
ReleaseMutex(ABCMux);
end;
尝试了TThread多线程
最后发现,多线程中不使用String就最好了
所以后来我使用TTimer来代替多线程了
我从这里看,大家好像对国企的态度都不是很好啊