回 帖 发 新 帖 刷新版面

主题:[原创]【工作心得】浅谈对象和线程的关系

来源:http://dozb.blogchina.com/1634055.html

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

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

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

回复列表 (共8个回复)

沙发

说的很好啊

板凳

多谢支持!更多的文章可以看我的blog:
http://dozb.blogchina.com

3 楼

对你的话我的理解是:对象是三维空间中的任何物体及其所特有的行为,而线程就是时间了,时间的改变能导致对象处于不同的空间。

4 楼

不错啊!
  my name is xlsue! he he

5 楼

晕菜,你小子呀

6 楼

yes! ^-^

7 楼

有幸看了楼主的blog,很长见识, 原来小道故事也可以并入程序技术探讨的。

8 楼

对,我认为编程思想,特别是OOP思想和现实生活很类似。以后多多交流哦。

我来回复

您尚未登录,请登录后再回复。点此登录或注册