基础补充-多线程-理论篇

多线程 理论篇编程

多线程则扩展了多进程的概念,使得同一个进行能够同时并发处理多个任务。线程(Thread)也被称做轻量级进程(Ligheweight Process),线程是进程的执行单元。就象进程在操做系统中的地位同样,线程在程序中是独立的、并发的执行流。当进程被初始化后,主线程就被建立了。对于绝大多数的应用程序来讲,一般仅要求有一个主线程,但咱们也能够在该进程内建立多条顺序执行流,这些顺序执行流就是线程,每条线程也是互相独立的。
线程是进程的组成部分,一个进程能够拥有多个线程,一个线程必须有一个父进程。线程能够拥有本身的堆栈、本身的程序计数器和本身的局部变量,但再也不拥有系统资源,它与父进程的其它线程共享该进程所拥有的所有资源。由于多个线程共享父进程里的所有资源,所以编程更加方便;但必须更加当心,咱们必须确保线程不会妨碍同一进程里的其它线程。
线程能够完成必定的任务,可与其余线程共享父进程中的共享变量及部分环境、相互之间协同来完成进程所要完成的任务。
简而言之:一个程序运行后至少有一个进程,一个进程里能够包含多个线程,但至少包含一个线程。
 多线程

•采用实现Runnable接口方式的多线程:并发

–线程类只是实现了Runnable接口,还能够能够继承其余类。this

–在这种方式下,能够多个线程共享同一个target对象,因此很是适合多个相同线程来处理同一份资源的状况,从而能够将CPU,代码和数据分开,造成清晰的模型,较好地体现了面向对象的思想。操作系统

–劣势是:编程稍稍复杂,若是须要访问当前线程,必须使用Thread.currentThread()方法。线程

•采用继承Thread类方式的多线程:对象

–劣势是:由于线程类已经继承了Thread类,因此不能再继承其余父类。继承

–优点是:编写简单,若是须要访问当前线程,无需使用Thread.currentThread()方法,直接使用this便可得到当前线程。接口

相关文章
相关标签/搜索