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

原创
2016/11/13 22:05
阅读数 8

多线程 理论篇

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

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

–线程类只是实现了Runnable接口,还可以可以继承其他类。

–在这种方式下,可以多个线程共享同一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU,代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。

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

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

–劣势是:因为线程类已经继承了Thread类,所以不能再继承其他父类。

–优势是:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this即可获得当前线程。

 

 

展开阅读全文
打赏
0
1 收藏
分享
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部