Perl多线程设计是个鸡肋

Perl多线程设计是个鸡肋

我昨天研究了一下perl多线程.
perl多线分两种模式:
一种 perl 5005 模式: 默认是共亨方式.
一种是ithead  模式:  默认是非共亨方式.

鸡肋是在与: 默认是共亨方式 是符合大多数开发者习惯的.但perl5.6以后却用ithead模式,
如果你想用 perl5005 模式, 必须自己重新build一次特别的perl版本.就没有可移植的好处了.
ithead方式,线程初始化时性能底下,在复杂的项目中不和道有谁用,和fork出来的线程就没什么区别了.

不知道perl的设计师想什么呢?用ithead把这么好用的perl给弄糟糕了.
perl的multithread..如果你有看文档...里面有说明...
online system不要使用..因为可能会 crash...

因为perl multithread 是用multiprocess变形过来的....
每个thread..可以看成是main process的clone..
浪费memory又没有效益......

我写过multithread的代码...没省多少memory...
不省内存可以省时间啊
哎,这点perl发展得不尽人意哦!!
大多数人用线程的目的是,
除了有多进程似的并发好处外,主要是避免进程间通讯的复杂.降低系统调用消耗与使用方便的共享内存.
我认为perl线程计设没有很好的完成这三点目标.
一般的线程实现都是缺省非共享的.
ithread要比5005稳定很多, 如果你要共享什么, 可以用threads::shared.

线程间的通讯确实比进程要方便一些, 但是共享资源的访问还是要收到限制的, 一般都要加锁. 现在各门语言的线程接口都差不多, perl也没有什么特异的. 如果你熟悉其他语言的多线程开发, 用perl的不会觉得有什么别扭的.

不过perl的线程实现确实还不够稳定,倒是.