我想学习线程方面的知识,查了很多资料都是讲多线程的。线程应该有单线程和多线程之分吧?是不是只要我们写的程序中没有用到线程的这个程序本身就已经是单线程了?因为程序对CPU和操作系统来说就是一个进程,而一个进程至少包括一个线程?只要我们在写程序中用到了线程,这个程序就变为多线程的程序了?什么情况下需要用到多线程呢,那么什么情况下用多线程比较好呢,线程究竟有什么优点和好处呢?说来好笑我还从来没有写一个含线程的程序了,望大家耐心解答,分不是问题。
看看操作系统的相关书籍吧
你的程序没有用到多线程就是单线程。
为什么要用多线程?
使用多线程的目的是充分使用资源,大家多知道,I/O操作是最耗时间的,使用多线程可以在别的线程使用I/O时,另外的线程使用CPU,而不是在干等。使用多线程使线性操作变成了并行操作。
线程本身是供cpu调度的,也就是一个调度单位,一个进程本身就是一个线程,称为主线程
但是不要认为程序就是一个进程,进程是一个比较大的概念,里面有很多内容
多线程的目的在于是你的程序可以“同时”做多个事情,举个例子,比如你的程序在进行io操作,假如你使用单线程,如果操作中发生过长的等待,那么你的程序就“死掉”,直到操作的完成,同时,在这段时间,你点击菜单什么的也没有反映,
或者io的速度很快,需要i和o同时进行,那么也需要多线程。
sdk里面关于线程的几个常见的函数是createthread,terminatethread...