一.简介
要说线程,就必须先说说进程,进程就是程序的运行时的一个实例.线程呢可以看作单独地占有cpu时间来执行相应的代码的.对早期的计算机(如dos)而言,线程既是进程,进程既是进程,因为她是单线程的.当然一个程序可以是多线程的,多线程的各个线程看上去像是并行地独自完成各自的工作,就像一台一台计算机上运行着多个处理机一样.在多处理机计算机上实现多线程时,它们确实可以并行工作,而且采用适当的分时策略可以大大提高程序运行的效率.但是二者还是有较大的不同的,线程是共享地址空间的,也就是说多线程可以同时读取相同的地址空间,并且利用这个空间进行交换数据. 【程序编程相关:Ecipse 3.0.1 和VE插件安装】
1.什么是线程 【推荐阅读:Swing中汉字变成方框问题的解决方法】
为什么要使用多线程呢?学过«计算机体系结构»的人都知道.将顺序执行程序与采用多线程并行执行程序相比,效率是可以大大地提高的.比如,有五个线程thread1, thread2, thread3, thread4, thread5,所耗的cpu时间分别为4,5,1,2,7.(假设cpu轮换周期为4个cpu时间,而且线程之间是彼此独立的)顺序执行需要花费19个cpu时间,而并行需要的时间肯定少于19个cpu时间,至于具体多少时间要看那些线程是可以同时执行的.这是在非常小规模的情况下,要是面对大规模的进程之间的交互的话,效率可以表现得更高. 【扩展信息:关于用myeclipse在struts-】
2.为什么要使用线程
3.java中是如何实现多线程的
与其他语言不一样的是,线程的观念在java是语言中是重要的,根深蒂固的,因为在java语言中的线程系统是java语言自建的, java中有专门的支持多线程的api库,所以你可以以最快的速度写一个支持线程的程序.在使用java创建线程的时候,你可以生成一个thread类或者他的子类对象,并给这个对象发送start()消息(程序可以向任何一个派生自 runnable 接口的类对象发送 start() 消息的),这样一来程序会一直执行,直到run返回为止,此时该线程就死掉了.
在java语言中,线程有如下特点:
§ 在一个程序中而言,主线程的执行位置就是main.而其他线程执行的位置,程序员是可以自定义的.值得注意的是对applet也是一样. § 每个线程执行其代码的方式都是一次顺序执行的. § 一个线程执行其代码是与其他线程独立开来的.如果诸线程之间又相互协作的话,就必须采用一定的交互机制. § 前面已经说过,线程是共享地址空间的,如果控制不当,这里很有可能出现死锁.
各线程之间是相互独立的,那么本地变量对一个线程而言就是完全独立,私有的.所以呢,线程执行时,每个线程都有各自的本地变量拷贝.... 下一页