伯乐共勉

讨论。NET专区
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2006年4月3日

摘要: Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。 线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。当... 阅读全文

posted @ 2006-04-03 17:05 伯乐共勉 阅读(372) 评论(0) 推荐(0) 编辑

摘要: 线程是进程内一个相对独立的、可调度的执行单元。一个应用可以有一个主线程,一个主线程可以有多个子线程,子线程还可以有自己的子线程,这样就构成了多线程应用了。由于多个线程往往会同时访问同一块内存区域,频繁的访问这块区域,将会增加产生线程冲突的概率。一旦产生了冲突,将会造成不可预料的结果(该公用区域的值是不可预料的)可见处理线程同步的必要性。 注意:本文中出现的所有代码都是用DELPHI描述的,调试... 阅读全文

posted @ 2006-04-03 17:04 伯乐共勉 阅读(290) 评论(0) 推荐(0) 编辑

摘要: 作者: snox当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源。例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件中的字符数。当然,在把整个文件调入内存之前,统计它的计数是没有意义的。但是,由于每个操作都有自己的线程,操作系统会把两个线程当作是互不相干的任务分别执行,这样就可能在没有把整个文件装入内存时统计字数。为解决此问题,你必须使两个线程同步工作。... 阅读全文

posted @ 2006-04-03 17:02 伯乐共勉 阅读(917) 评论(3) 推荐(0) 编辑

摘要: 在存储过程中,我们一般会用 raiserror来抛出存储过程中的异常,但如果你在这之后,又用了 return 参数的话,在外部就无法捕捉到此异常了。比如 create proc #t1as select '1' declare @errorid int set @errorid = 1 raiserror(@errorid, 16, 1) return @errorid 我们用 exec... 阅读全文

posted @ 2006-04-03 15:02 伯乐共勉 阅读(653) 评论(0) 推荐(0) 编辑