首页 > 非编程专区 > 网络杂文 > [转]【工作心得】浅谈对象和线程的关系
2006
01-18

[转]【工作心得】浅谈对象和线程的关系

编程要弄清楚许多概念,可有时候我们的概念就是模糊不清。初学者常常搞不清的就是对象和线程的关系。
    
    明确一下,对象和线程没有关系,或者说没有直接的关系。对象是类的实例;线程是多任务操作系统调度的产物。对象包罗万象的容纳了东西种种,可是是个僵尸,因为他不能动弹;线程拥有时间片,操作系统赋予了它运动的活力。可以这么说,对象是通过线程的执行来改变其数据的。对象必定属于某个线程(或进程),若对象不在线程中,那它还没有成为对象,只能是它的模子-类。

    看看现实世界吧。“苹果树”是对象,“苹果”是对象,也是苹果树的子对象。“人的活动”是线程。人把苹果从苹果树上摘了,洗了,削了,吃了。“人的活动”改变了“苹果”对象。常常有人弄不明白线程之间的同步,访问公共共享数据的几个线程需要同步,就是说不能大家一起访问,得按照顺序一个一个来访问。为什么,这也很好理解。设想有一个苹果(公共共享数据),要求你必须能完整地得到它,吃了它,若没有先来后到,大家都来抢(多个线程无序状态)这个苹果,会是什么样?七零八落,抢到你的手里不会是个完整的苹果,这就背离了我们的初衷。

    我们在具体的开发过程中,要用面向对象的思维来思考问题,多个任务往往是要求并行处理的,这时候还要考虑分配成几个线程来完成。你可以把它相象成今天我们有一堆事情(对象)需要做,许多事情是需要同时做的,我们该考虑安排几个人(线程)来做,是不是很简单?


留下一个回复