要弄清楚Thread的层次结构,必须先弄清楚它的参照系。看看“The Futures of Ruby Threading”这段话:“Current stable releases of Ruby use user space threads (also called "green threads"), which means that the Ruby interpreter takes care of everything to do with threads. This is in contrast to kernel threads, where the creation, schedu ...
- 10:36
- 浏览 (496)
- 评论 (0)
- 分类: Concurrency
既然Thread质疑声一片,为什么它仍能够存在呢?原因有:(1)某些应用程序天生就具有并发特性,而且需要共享地址空间和各种资源,比如数据库服务器。(2)进程方案开销大。(3)Java语言大行其道,使得绝大部分程序员认为并发编程唯一也是最好的方式就是采用多线程,而且在Java语言中创建一个线程非常简单。对于第二点,只有线程创建,线程同步,线程加锁等开销比进程方案开销小,才会真正获益。只是来个线程创建和进程创建开销的比较,那也太天真了。此处,我认为还要包括开发,维护进程并发程序和线程并发程序两种方式之间的开销对比。毕竟,除了机器时间,人的时间也很宝贵。对于第三点,Java是不是会在以后考虑另外的并 ...
- 08:16
- 浏览 (472)
- 评论 (0)
- 分类: Concurrency
在Ruby实现中,Ruby1.8采用的是Green thread,JRuby和XRuby采用的是Native thread,Rubinius既支持Green thread,也支持Native thread。Ruby1.9将由Green thread转向Native thread。Green thread有哪些不足呢?在“Ruby Userspace Threads vs GUI tookits Roundup”中重点强调了Green Thread的一个不足:Blocking syscall将阻塞所有其余的线程,而且这个问题在GUI和网络开发中将随处碰到。另外,Green Thread不能有效挖 ...
- 06:10
- 浏览 (470)
- 评论 (0)
- 分类: Concurrency
过去,提升CPU性能的方法有:时钟速度执行优化缓存此时用户程序无须修改,就可以获得CPU性能提升所带来的好处。现在,提升CPU性能的方法:超线程多核缓存此时虽然缓存能,但超线程和多核CPU对现在的绝大多数应用,几乎不会有任何影响。多核还说不定会降慢程序的运行,因为多核带来的是更强的并行处理能力、更高的计算密度和更低的时钟频率。如果不采用并发好好利用硬件资源,多核CPU真的是浪费。另外,还有一些问题需要注意。有了多核,有时候还是感觉应用程序慢,此时问题可能就不是出在CPU上。要知道就算是单核,在日常工作中,CPU的利用率远没有达到100%。有时候,应用程序的瓶颈可能是在I/O,可能在网络,或者数 ...
- 06:10
- 浏览 (475)
- 评论 (0)
- 分类: Concurrency







评论排行榜