多线程和单线程的我个人认为,就是一个顺序的问题,,因为我关心的是结果不是过程.
如果从原理来说,就是就是单线程一个时间段就创建一个对象,开着是一个管道;多线程就是一个时间点创建啦多个这样的对象,可以 并行的存在,开着多个通道.
再深一点就是多线程是为了提高CPU的利用率,可以把一个正在运行的软件看做一个进程,就像一个大的管道,这个管道不运送什么东西,但里面有很多个小的管道,每个小管负责的东西不同~~而这些小管道就可以看做是一个个线程~如果运行的是一个单线程的程序的话,而这个线程需要连续运行几个功能时,如果正在运行的那个功能因碰到一个等待或者睡眠的指令的话,他就会停在那里不做任何事,此是这个CPU就空闲在那里,同时还会等待知道程序重新继续运行~~如果使用多线程技术,那么可以把这几个功能同时(并不是绝对意义上的同时)运行,当其中一个功能遇到睡眠指令的时候,其他没有睡眠的继续运行,这个可以花更短的时间,让CPU更充分的被利用来完成需要的事情~线程通常共享一个代码区,但有各自独立的数据存储区!
一个进程通常定义为程序的一个实例。在Win32中,进程占据4GB的地址空间。与它们在MS-DOS和16位Windows操作系统中不同,Win32进程是没有活力的。这就是说,一个Win32进程并不执行什么指令,它只是占据着4GB的地址空间,此空间中有应用程序EXE文件的代码和数据。EXE需要的任意DLL也将它们的代码和数据装入到进程的地址空间。除了地址空间,进程还占有某些资源,比如文件、动态内存分配和线程。当进程终止时,在它生命期中创建的各种资源将被清除。但是进程是没有活力的,它只是一个静态的概念。为了让进程完成一些工作,进程必须至少占有一个线程,所以线程是描述进程内的执行,正是线程负责执行包含在进程的地址空间中的代码。实际上,单个进程可以包含几个线程,它们可以同时执行进程的地址空间中的代码。为了做到这一点,每个线程有自己的一组CPU寄存器和堆栈。每个进程至少有一个线程在执行其地址空间中的代码,如果没有线程执行进程地址空间中的代码,进程也就没有继续存在的理由,系统将自动清除进程及其地址空间。为了运行所有这些线程,操作系统为每个独立线程安排一些CPU时间,操作系统以轮转方式向线程提供时间片,这就给人一种假象,好象这些线程都在同时运行。创建一个Win32进程时,它的第一个线程称为主线程,它由系统自动生成,然后可由这个主线程生成额外的线程,这些线程,又可生成更多的线程。
我比较关注怎么来做和能知道结果是什么.
分享到:
相关推荐
多线程的专用书籍这是很好的,在网上找到的,应该还是可以,多好
一个关于多线程的小例子,都是自己实战中总结的些东西,按照文档里说的来,新手可以写出一个完整的多线程功能。
关于多线程的个人总结,包括概念理解、创建线程、线程同步安全、各类锁、线程状态、并行并发、异步同步等
关于多线程一个小程序 来源于侯捷的深入浅出MFC 不错的啊 谢谢大家下载
关于多线程的C#打字游戏,初学者可下载看一下,无需资源分
书全名是 C#并发编程经典实例 ,是 C#关于多线程开发 的 经典, 所需积分最少
统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。 本文我们将介绍在Linux 下编写多进程和多线程程序的一些初步知识。 1 引言 对于没有接触过 Unix/Linux 操作系统的人来说,fork ...
关于多线程的入门知识讲解,如什么是多线程,怎样编写一个多线程程序,后台线程,线程组,线程的生命周期,多线程的同步处理等等等等
关于多线程的界面操作 主讲了UI交互 多线程卡UI问题
第一章 关于多线程编程 第二章 线程管理
这是一个关于多线程的实例,通过本例可以了解多线程的运行情况!
iOS多线程编程指南(一)关于多线程编程 - 51CTO.COM1
一个关于多线程的例子,包含了progress控件的开始,暂停,回复等
关于多线程的几个小问题,和常用的几个小例子。
整理的关于多线程的一些资料,互斥,同步等,以及面试题,代码等常见问题。
多线程程序的编写,多线程应用中容易出现的问题。互斥对象的讲解,如何采用互斥对象来实现多线程的同步。如何利用命名互斥对象保证应用程序只有一个实例运行。应用多线程编写网络聊天室程序。
一款关于多线程的大游戏,如果是是初学者的话,可以来看一下
最近在修改一个别人做的设备监控程序,用到delphi的多线程,收集了一点资料,希望也能方便大家
两个很精典的IOS中使用多线程的代码。有关NSThread类的使用一看这两个例子马上就能理解了。
有关多线程的小程序,以及怎样创建多线程和异常处理