作者WYchuang (打不留歪庄)
看板CSSE
标题Re: thread (执行绪) definition??
时间Tue Jan 24 02:13:08 2006
※ 引述《in2 (敬请期待 :P)》之铭言:
: ※ 引述《cipherman (雨云无日晴)》之铭言:
: : Thread和Process的差别可以用个具体的譬喻来说...
: : 就是像pcman和firefox那样...每个分页都是一个thread...
: : 若是要开一个新页就要另外开一个新的视窗就是新开一个process...
: : 所以说,thread和process主要的差别在要执行的动作一样...
: : thread则不再另外allocate一个space放要执行的code....
: 这样子的说法其实会有争议,
: 因为 copy on write的技术 (我猜应该许多作业系统都有做了) ,
: 一个 process进行 fork(2)的时候,
: 当下 code (以及其他大部份的东西) 并不会被弄成两份,
: 而 code space 在大部份的情况下又是 read only的,
: 所以理论上不管你 fork 几次都还是会只有一份.
: 我倒比较好奇的是,
: 如果我故意跑两只一样的程式,
: 而不是先跑一只起来再让他 fork,
: 酱子在记忆体中, code会变两份吗? 或是只有一份?
如果是在shell下面去"跑两个"一模一样的程式, i.e. 下两次执行程式的command
其实也是先fork过了不是吗?只是fork完直接exec();
这样的话 应该是两份吧 ...
: 个人猜测应该是前者比较合理,
: 後者的话似乎有点实作上的困难 @@
: 要怎麽知道新跑起来的这个程式是不是和其中一个已经在跑的程式一样呢? :Q
--
笑年ㄟ:老板,这是什麽啊?这麽苦!
老板 :笑年ㄟ,这就是人蔘啊 ~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.96.129.168