为什么会排队等待?
【程序编程相关:英特尔网吧平台悄然推进 首次捆绑软硬件】 【推荐阅读:伦敦将成首个实现城市级WiMAX服务的英】下面的这个简单的 java 程序完成四项不相关的任务.这样的程序有单个控制线程,控制在这四个任务之间线性地移动.此外,因为所需的资源 ? 打印机.磁盘.数据库与显示屏 -- 由于硬件与软件的限制都有内在的潜伏时间,所以每项任务都包含明显的等待时间.因此,程序在访问数据库之前必须等待打印机完成打印文件的任务,等等.如果您正在等待程序的完成,则这是对计算资源与您的时间的一种拙劣使用.改进此程序的一种方法是使它成为多线程的. 【扩展信息:思科加入开源联盟OMP 成该组织首个商业】 四项不相关的任务 class myclass { static public void main(string args[]) { print_a_file(); manipulate_another_file(); access_database(); draw_picture_on_screen(); }} 在本例中,每项任务在开始之前必须等待前一项任务完成,即使所涉及的任务毫不相关也是这样.但是,在现实生活中,我们经常使用多线程模型.我们在处理某些任务的同时也可以让孩子.配偶与父母完成别的任务.例如,我在写信的同时可能打发我的儿子去邮局买邮票.用软件术语来说,这称为多个控制(或执行)线程. 可以用两种不同的方法来获得多个控制线程: 1.多个进程 在大多数操作系统中都可以创建多个进程.当一个程序启动时,它可以为即将开始的每项任务创建一个进程,并允许它们同时运行.当一个程序因等待网络访问或用户输入而被阻塞时,另一个程序还可以运行,这样就增加了资源利用率.但是,按照这种方式创建每个进程要付出一定的代价:设置一个进程要占用相当一部分处理器时间与内存资源.而且,大多数操作系统不允许进程访问其他进程的内存空间.... 下一页