b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

delphi多线程_delphi三层架构源码_delphi多线程串行执行(12)

电脑杂谈  发布时间:2017-01-11 05:06:40  来源:网络整理

在接下来多线程的课题中要使用一些内核对象, 不如先盘点一下, 到时碰到这个属性时给个 nil 即可, 不必再费神.

{建立事件} function CreateEvent(   lpEventAttributes: PSecurityAttributes; {!}   bManualReset: BOOL;   bInitialState: BOOL;   lpName: PWideChar ): THandle; stdcall;  {建立互斥} function CreateMutex(   lpMutexAttributes: PSecurityAttributes; {!}   bInitialOwner: BOOL;   lpName: PWideChar ): THandle; stdcall;  {建立信号} function CreateSemaphore(   lpSemaphoreAttributes: PSecurityAttributes; {!}   lInitialCount: Longint;   lMaximumCount: Longint;   lpName: PWideChar ): THandle; stdcall;  {建立等待计时器} function CreateWaitableTimer(   lpTimerAttributes: PSecurityAttributes; {!}   bManualReset: BOOL;   lpTimerName: PWideChar ): THandle; stdcall; 

上面的四个系统内核对象(事件、互斥、信号、计时器)都是线程同步的手段, 从这也能看出处理线程同步的复杂性; 不过这还不是全部, Windows Vista 开始又增加了 Condition variables(条件变量)、Slim Reader-Writer Locks(读写锁)等同步手段.

不过最简单、最轻便(速度最快)的同步手段还是 CriticalSection(临界区), 但它不属于系统内核对象, 当然也就没有句柄、没有 TSecurityAttributes 这个安全属性, 这也导致它不能跨进程使用; 不过写多线程时一般不用跨进程, 所以 CriticalSection 应该是最常用的同步手段.

二、临界区。delphi多线程

先看一段程序, 代码文件:

unit Unit1;  intece  uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls;  type   TForm1 = class(TForm)     ListBox1: TListBox;     Button1: TButton;     procedure FormCreate(Sender: TObject);     procedure Button1Click(Sender: TObject);   end;  var   Form1: TForm1;  implementation  {$R *.dfm}  function MyThreadFun(p: Pointer): DWORD; stdcall; var   i: Integer; begin   for i := 0 to 99 do Form1.ListBox1.Items.Add(IntToStr(i));   Result := 0end;  procedure TForm1.Button1Click(Sender: TObject); var   ID: DWORD; begin   CreateThread(nil0, @MyThreadFun, nil0, ID);   CreateThread(nil0, @MyThreadFun, nil0, ID);   CreateThread(nil0, @MyThreadFun, nil0, ID); end;  procedure TForm1.FormCreate(Sender: TObject); begin   ListBox1.Align := alLeft; end;  end.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25504-12.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 周厉王姬胡
      周厉王姬胡

      棒棒哒

    • 刘斌
      刘斌

      #吴亦凡1106生日快乐##吴亦凡##吴亦凡BadGirl#吴亦凡新歌首唱BadGirl

    热点图片
    拼命载入中...