• 全部
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

如何实现这样的多线程?

crackatom 2004-01-08 04:26:52
初做多线程,想做一个比如100个线程相互不冲突不干扰,可以单独添加或者杀掉的多线程程序,有高手给个思路吗?最好有代码可以直观点。
...全文
44 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Hedonism 2004-01-11
UP
回复
halfdream 2004-01-11
节制点使用线程,
就算线程安全性处理得很好,一个应用程序线程数超过16个就会明显影响到性能.
每增加一个线程就要增加几M的内存消耗.

操作界面最好只由主线程一个去做.
回复
GameWeaverDummy 2004-01-11
up
回复
cooling 2004-01-11

你可以参考典型的多线程设计呀,好象没有一下子开这么多线程的。

一般的应用,可以开几个接收线程,几个处理线程,几个发送线程……接收、处理和发送……可以分开来,比如邮件服务器的设计就比较好。互不干扰,可以找这方面的资料参考。
回复
crackatom 2004-01-11
哪位有这方面的代码呢?能贴一个给大家看看吗?
回复
crackatom 2004-01-09
再顶一下。
回复
hiflower 2004-01-09
就是说,在你的线程中要处理各线程的资源冲突,可能需要同步,互斥等操作
而一般的VCL类只关心自己。
回复
crackatom 2004-01-09
to hiflower(花): 内部处理怎么个不同呢?能说详细点吗?
回复
hiflower 2004-01-09
与管理 100 个 TEdit 没什么区别。
区别只是在 TEdit 和 TYourThread 的内部处理不同。
回复
devil_li 2004-01-08
创建一个线程列表
Threads:TList;
要添加一个线程:
Threads.Add(TMyThread.Create)
删除一个线程:
Threads[I].Terminate;
Delete(I);
回复
crackatom 2004-01-08
能够管理其中的每个业务,可以添加或者停掉。
回复
crackatom 2004-01-08
目的是多线程访问数据库和DLL,实现网络通信。
分析所收到数据,根据数据的不同调用DLL里的不同函数,并访问数据库里不同数据,并发送相应的数据。保证实时,不能够冲突和间断。
回复
crackatom 2004-01-08
我的意思是在程序已经运行的情况下可以动态地管理线程,线程自己不能够terminate.
回复
aiirii 2004-01-08
>>想做一个比如100个线程相互不冲突不干扰,可以单独添加或者杀掉的多线程程序
區別你的你線程是做什麼的??如果是要訪問VCL, 訪問更新界面, 共享資源的, 就比較麻煩, 要不是, 那一個線程或多個, 區別不大!
回复
devil_li 2004-01-08
很easy啊,关键是保证线程要经常判断Terminated就行
杀掉直接用terminate
回复
crackatom 2004-01-08
自己顶一下!
回复
发帖
Delphi
创建于2007-08-02

4871

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2004-01-08 04:26
社区公告
暂无公告