« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
|
|
[Java编程]Java Thread(2) |
大隐于市 发表于 2005/6/1 9:36:14 |
从第一篇文章,我们发现在Java中生成线程是一件很simple的事情,但是我们应该尽量避免生成Thread。在比较简单的情况下问题还不明显,不过MultiThread程序的确存在着如下缺点:
减慢初始启动速度:生成和启动Thread在一些平台上是比较低速的操作,在性能关键的程序中,这是个很大的缺点。但是我们可以使用Thread Pool来解决这个问题,后面应该会有涉及。
资源的使用:每个Thread都要分配自己的堆栈,堆栈就是包含本地变量值和其他执行相关信息的存储区域;除了堆栈,还要占用其他系统资源,并且有些平台限制可以生成的Thread数量,即使不存在这样的限制,由于系统的CPU和内存性能和容量有限,还是不能任意的产生Thread,这个问题可以通过Thread Pool来折衷解决。
增加了程序的复杂性:使用MultiThread的最大缺点是增加了程序的复杂性,使其控制起来更加困难。Thread的安全性通常要求将对象设计成一个Thread修改数据时,另一个Thread无法read或者write这个数据。在这种情况里,“数据”指由对象封装的信息,一个数据项目可能是由对象中的字段或者字段的集合构成的,比如姓名可以存放在一个String或者多个String字段当中。更复杂的问题是多个Thread之间存在资源共享的问题,资源指多个Thread可以同时使用的任何实体,在大多数情况下,程序员要负责Thread对资源的使用。 | |
|
|
|
统计 |
blog名称:若望的天地 日志总数:30 评论数量:60 留言数量:0 访问次数:152305 建立时间:2005年5月25日 | |