关于单线程和多线程问题?

cansanta 2003-04-22 12:26:42
我想学习线程方面的知识,查了很多资料都是讲多线程的。线程应该有单线程和多线程之分吧?是不是只要我们写的程序中没有用到线程的这个程序本身就已经是单线程了?因为程序对CPU和操作系统来说就是一个进程,而一个进程至少包括一个线程?只要我们在写程序中用到了线程,这个程序就变为多线程的程序了?什么情况下需要用到多线程呢,那么什么情况下用多线程比较好呢,线程究竟有什么优点和好处呢?说来好笑我还从来没有写一个含线程的程序了,望大家耐心解答,分不是问题。
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cansanta 2003-04-27
  • 打赏
  • 举报
回复
谢谢各位的解答。我想说的这个问题不是针对具体的开发语言的和开发工具的,是一般意义的。我想你懂得了一般原理,用到具体的语言是很容易的
liushmh 2003-04-22
  • 打赏
  • 举报
回复
看看操作系统的相关书籍吧
ckacka 2003-04-22
  • 打赏
  • 举报
回复
线程本身是供cpu调度的,也就是一个调度单位,一个进程本身就是一个线程,称为主线程
但是不要认为程序就是一个进程,进程是一个比较大的概念,里面有很多内容

多线程的目的在于是你的程序可以“同时”做多个事情,举个例子,比如你的程序在进行io操作(不考虑一些可以提前返回的情况),假如你使用单线程,如果操作中发生过长的等待,那么你的程序就“死掉”,直到操作的完成,同时,在这段时间,你点击菜单什么的也没有反映,

或者io的速度很快,需要i和o同时进行,那么也需要多线程。

sdk里面关于线程的几个常见的函数是createthread,terminatethread...
HostOOP 2003-04-22
  • 打赏
  • 举报
回复
(1)你的程序没有用到多线程就是单线程。
(2)为什么要用多线程?
使用多线程的目的是充分使用资源(I/O 、CPU),大家多知道,I/O操作是最耗时间的,使用多线程可以在别的线程使用I/O时,另外的线程使用CPU,而不是在干等。使用多线程使线性操作变成了并行操作。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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