关于进程和线程的那些事儿

我们知道每一个应用程序都有一个进程和一个主线程,前者是由操作系统为我们的应用程序创建的,而后者是进入入口点后创建的,当然这些都是由操作系统来完成的,如果我们的应用程序不是够大够复杂,或者与网络没有关系(写网络程序多线程是跑不掉的),系统为我们提供的一个进程和一个主线程已经足以完成一切工作,用户也不会感到任何的不适,当然,我们的目标当然是写大型程序,特别是以后进公司做项目时,如果你不懂这些知识,我想继续呆在公司的可能性为零,特别是搞游戏开发的朋友,多进程、多线程程序设计是很重要的(其实游戏开发和win32程序是一个原理,只是使用不同的API罢了,当然逻辑是很重要的,特别是智能设计),前段时间我看完了经典的《核心编程》,现在我们一起来瞧瞧这本书中有关进程和线程的一些知识。

“一个进程是一个正在执行的应用程序,它包含有:私有的虚拟地址空间、代码、数据和其它的操作系统资源,譬如进程可以存取的管道、文件和同步对象等等。”

这是书中对进程的阐释,的确,当我们打开资源管理器,那里面都是一些正在运行的程序,而且这些项目都与进程相关联,其实,进程就是用来容纳线程的容器,这些线程都隶属于这个进程,系统创建进程实际上实实在在的是在系统的一块存储区内创建一个进程内核对象(一个不大的数据结构,包括一些属性),系统就是利用这个内核对象管理进程,我们知道我们的程序代码执行在一个地址空间内,而这段地址空间是由调用它的线程来进程执行的,也就是说,代码的执行是靠线程来管理的,进程不过是线程的上级罢了,它释放了所有权力给手下的线程,让手下们放手干(线程),不过线程永远是线程,进程能绝对管理这些手下(windows提供一组API),当然进程并不是老大,如果你想对进程施加一些限制,你可以创建工作来管理进程,当然这些都是臣子,操作系统才是君,一切都要听从操作系统,这也从另一方面说明写windows下的应用程序,了解windows操作系统的工作机制是很有必要的。

与进程和线程相关的就是同步问题了,有很多机制可以实现同步,比如旋转锁、等待事件、条件变量......具体相关的问题建议您参考《核心编程》,这本书啥都有。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值