菜鸟又举手发问了!!!--为什么大家写windows服务很多都开线程来做?

xinxincao 2004-04-21 11:23:59
在不用多线程地情况下,什么时候应该开线程来做?
开线程和不开有什么区别?
为什么在写windows服务时,好多人开了线程?而其他的程序,比较少用到?

问题比较菜,大家不要笑,关键是读书时没学好
...全文
61 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizhongkun 2004-04-22
  • 打赏
  • 举报
回复
自己补补 操作系统原理 吧!!
xinxincao 2004-04-21
  • 打赏
  • 举报
回复
up
lj915 2004-04-21
  • 打赏
  • 举报
回复
呵呵~~~`毕业两年来,都把以前学的东西都忘掉了,希望我没有说错(错也不要错得太离谱,嘻嘻~~~~~)

楼主还是看看《操作系统原理》吧,把线程和进程的概念都弄明白,你就会明白多线程与单线程的区别了。
lj915 2004-04-21
  • 打赏
  • 举报
回复
而且使用线程可以较好的充分利用系统资源?
能仔细解释一下吗?
我不开线程,我的程序应该就是一个进程,而开了线程的话,程序应该是只有一个线程的进程,我想知道两者的区别
------------------------
可以这样理解,因为现在的WINDOWS虽然说是多任务系统,但在单位时间内还是只能处理一个线程,只不过这个单位时间很小很小加上计算机的速度快,我们察觉不出来而已,如果只有一个线程,那么系统在完成这个线程任务以后就把资源留给下一个等待中的线程,所以效率没有那么高,而如果有多个线程的话(线程与进程的区别,楼主请参阅一下《操作系统原理》),那么系统就会为每一个线程都分配资源(这些线程都在轮候系统分配给它们的资源),所以看起来所有线程都是在同时工作一样(因为时间间隔小),所以效率就比单线程的程序要高效,但如果开太多线程的话,会耗尽CPU和内存资源的。
sshwsfc 2004-04-21
  • 打赏
  • 举报
回复
给你举一个例子
你做了一个服务器,等待客户连接
如果你只用一个线程的话,那么当你listen的时候,整个程序都会定下来等着,就像是死记了一样。
但是要使用多线程的话,就可以另开一个线程等待连接,主程序可以干其他的事情

建议先看看网络程序,然后再看看
turnmissile 2004-04-21
  • 打赏
  • 举报
回复
服务需要高效的回复能力。
而且能更好的利用process的时间片。
ermachao 2004-04-21
  • 打赏
  • 举报
回复
线程和进程的区别在于在内存的使用方式不一样。
xinxincao 2004-04-21
  • 打赏
  • 举报
回复
up
xinxincao 2004-04-21
  • 打赏
  • 举报
回复
up
xinxincao 2004-04-21
  • 打赏
  • 举报
回复
to gxxlc(冰良):
而且使用线程可以较好的充分利用系统资源?
能仔细解释一下吗?
我不开线程,我的程序应该就是一个进程,而开了线程的话,程序应该是只有一个线程的进程,我想知道两者的区别
whalefish2001 2004-04-21
  • 打赏
  • 举报
回复
呵呵,大家都是这样用,反正我也这样用,如果写windows 服务只是给你使用(不给其他application 可以不开线程,当多个进程都要访问它时,也为了减少内存的占用吧?)
服务一般都是开线程来做的吧。
hunterzhi 2004-04-21
  • 打赏
  • 举报
回复
要多个任务一起运行 ,就要多个线程
gxxlc 2004-04-21
  • 打赏
  • 举报
回复
"windows服务"?你是只windows应用程式么?
在有窗体的应用程式中,为了不让界面在进行长时间的计算操作时,死掉(不能动).一般情况下,把耗时的操作放在工作线程中完成.这样界面就不会死了.
而且使用线程可以较好的充分利用系统资源.
阿甘 2004-04-21
  • 打赏
  • 举报
回复
简单的说就是多线程可以同时做多个事情

而服务程序一般都有要同时完成多个任务的情况
xinxincao 2004-04-21
  • 打赏
  • 举报
回复
up

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧