小弟学习多线程,实在是太笨了,老是搞不懂线程这个东西,请指教(100分)

  • 主题发起人 主题发起人 LoveMFC
  • 开始时间 开始时间
L

LoveMFC

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,请各位老大帮忙,小弟对多线程的理解太笨了,一直觉得非常抽象,老是搞不清楚,看帮助也搞不懂,网上找资料也不行,看到这个版块的兄弟们问的问题都是高深问题,所以为多线程方面的高手多,特请指教。
请老大给个例子
或者比较典型的一段代码
或者其他什么的,
反正能典型地应用多线程方面的知识,说明问题,引导小弟入门。感激。
 
我也不知道,我偶尔看看DELPHI自带的例子,我感觉一般的那个就够了。
Delphi6/Demos/Threads下,你看线程的唤起,开始线程等等,也许能够帮你了。
 
1。不要把线程想得太复杂。
2。多线程启动时你可以想象成一段代码在程序中同时运行多个副本,其实就是这样。
3。多线程在启动时要处理好多线程用到的公共资源,如果用到了vcl资源(就是控件)要使用同步或是临界区。
4。delphi的demo中有一个多线程排序的例子,很典型,去看看吧。
 
谢谢指点,还请高人给段典型性强的代码,感激!
 
来个简单的,你写一个非线程的程序,再用想似代码写一个线程程序,自己比较看看就知道了
非线程程序,在主窗体下放上一个Button,写下如下代码,此时程序一直不能响应其它的事件,
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
while Truedo
Inc(i);
end;

线程方法
TMyThread = class(TThread)
protected
procedure Execute;override;
end;

procedure TMyThread.Execute;
var
i: Integer;
begin
while Truedo
begin
if Terminated then
exit;
inc(i);
end;
end;

如果是采用这种方式,这种时候,你还可以移动窗体等其它动作
这样子一比较,应该理解线程和进程的区别了吧
 
谢谢chinaxuguojun
继续请教:线程同步是怎么回事?谢谢~!
 
线成同步就是 当我在线成里定义了函数 用到了vcl 资源 也就是控件 我就的同步
做几个程序 就明白了 我一开始也不懂 后来觉得线成也没什么
 
线程主要用来做数据查询还不错的。其他的还没有用到。
另外,
借个地方问一下,好像用ADO访问数据库,用线程做查询有点问题。
 
正在学习线程,借鉴了
以后不懂的还请各位大仙指路呀!
 
两条道
1.从Tthread继承
2.api用createthread
需要注意的问题是线程的同步和异步
完了,就这些了。搞懂了就够用了
还要知道的更过,参考操作系统和winows核心编程
 
同步是为了防止线程资源竞争而采取的措施
异步就是线程之间的通信合作
 
看delphi的TThread的代碼,注意synchronize方法的實現。
看操作系統。
找個unix的多綫程的小例子看看,再看windows上的多綫程也許會容易明白。
 
其实线程中主要的就是execute
delphi 6开发人员指南对线程同步的介绍很到位,可以借鉴一下
 
synchronize好像主要用来调用线程中的方法过程,
俺也是刚学这个,
帮楼主顶下,
 
你怎么从不结贴???????????
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部