收录日期:2019/03/26 02:53:03 时间:2016/05/31 07:15:31 标签:语言基础/算法/系统设计
procedure TTest.execute;
var
i:integer;
begin
    FreeOnTerminate:=true;
    enterCriticalSection(CS);
     for i:=1 to maxsize do
            begin
               inc(incnum);
               TT[i]:=incnum;
               sleep(5);   //这一句是否每循环一次就睡眠五秒,并且不执行下一个线程
            end;

end;
procedure Tform1.T1done(sender:Tobject);
var
i:Integer;
begin
   listbox1.Items.Clear;
        for i:=1 to maxsize do
              begin
                 listbox1.Items.Add(inttostr(TT[i]));
               end;
    leavecriticalsection(cs);
end;
procedure Tform1.T2done(sender:Tobject);
var
i:integer;
begin
       listbox2.Items.Clear;
       for i:=1 to maxsize do
             listbox2.Items.Add(inttostr(TT[i]));
  leavecriticalsection(cs);

end;
procedure TForm1.Button1Click(Sender: TObject);//执行线程
begin
  initializeCriticalSection(CS);
  T1:=TTest.Create(false);
  T1.OnTerminate:=T1done;
  T2:=TTest.Create(false);
  T2.OnTerminate:=T2done;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
deletecriticalsection(cs);
end;
我在实际应用中真没用过多线程,仅在一些练习中写着玩。


但就我所知,sleep API会令总个进程挂起,而不是让使用它的线程挂起。
for i:=1 to maxsize do
            begin
               inc(incnum);
               TT[i]:=incnum;
               sleep(5);   //这一句是否每循环一次就睡眠五秒,并且不执行下一个线程
            end;
但就我所知,sleep API会令总个进程挂起,而不是让使用它的线程挂起。

//  不是令整个进程挂起的 只是使自己暂时睡眠5ms 不是5秒!是 5ms...表示自己在这5MS中 不去睁抢CPU。。。。

sleep(5);   //这一句是否每循环一次就睡眠五秒,并且不执行下一个线程
// 是 5MS 5毫秒 不是不执行下一个线程 而是不执行下一次循环。。。是本线程的执行代码挂起5MS。。
procedure TForm1.Button1Click(Sender: TObject);//执行线程
begin
  initializeCriticalSection(CS);
  T1:=TTest.Create(false);
  T1.OnTerminate:=T1done;
  T2:=TTest.Create(false);
  T2.OnTerminate:=T2done;
end;
我这里有二个线程,并使用了临界区。T1的execute中执行了sleep挂起后,是否是挂起5MS后再执行
线程T2了.
而我这个sleep又在循环中,是否每次都执行sleep挂起了
sleep会放出CPU给其他线程运行

jquery多个滑动门时第一个内容不显示 MapX的滚轮消息//用什么函数直接放大与缩小 s2sh 模型驱动和属性驱动可以同时用吗? 为什么single下,多线程中产生的对象不是同一个? 考考你们的思维能力!!! Arcgis API for android 里面的HelloWord 实例不能够正常运行 String s = new String(\"xyz\");创建了几个String Object? 求答案 求解释 一个简单问题。。 哪里错了? 求高手啊 【尼玛!我在上海了。。有熟人没?】 讨论帖:为什么数组的查询效率较高,增删的效率很低,而链表却刚好相反 gridview撤销某行之后但不删除数据库数据,只是在显示的时候改变这行的颜色或者加划线划掉,也不可再对本条数据进行任何操作。 WEB SERVICE相关的问题 假如有女生问你对她的看法,这是什么意思 如何动态声明一个 DataGridView? 淘宝为什么要开发自己的kissy框架 而不使用jquery 淘宝为什么要开发自己的kissy框架 而不使用jquery mysql 根据一个字段分组 并显示每个分组的前N个值(从大到小排) Tcp服务器,重叠io口问题 请大家说说我这个类的设计上有什么问题 求救!急!json从数据库读取数据。 运行以后显示缺少函数标题 ,是什么意思? 求救啊,在代码中设置使用物理键盘的状态为关闭啊 手机通讯录 求助滚动条自绘 sql xml replace value of不解之处 用vs2008制作activeX控件以及cab包 失败。求原因?? 存储过程优化, 以前同事说问我个简单的问题,结果把我难住了,求大侠解答 怎样用代理访问美国谷歌啊