线程概述

来源:互联网 发布:知乎 神话类电视剧 编辑:程序博客网 时间:2024/05/14 19:14

1. 并行和并发

并行:指同一时刻多条指令在多个处理器上执行

并发:同一时刻只能以一条指令执行,但多线程指令间采用快速的轮换机制,使得宏观上是多条指令在执行。

并发只在单处理器上提高系统性能,通常情况下,多线程会比船型执行多个任务要耗时,因为多了线程的上下文切换,但是顺序执行容易引发阻塞现象,比如任务R在等待I/O操作发生阻塞,导致后面的任务也无法继续执行。单处理器上常见的提高性能事例是事件驱动程序。

2.进程和线程

1)进程是程序的一次执行,各进程之间是独立存在的实体,拥有各自的系统资源。

(2)线程是进程的执行单元,线程在进程中是独立的并发的执行,但进程被初始化后,主线程就被创建了 

(3)线程是进程的组成部分,一个进程可以有多个线程,每个线程可以有自己独立的虚拟机栈程序计数器局部变量,但却不拥有系统资源,它与其它线程共享父进程的系统资源。

(4)线程它并不知道进程中是否还有其他的线程存在,线程的执行是抢占式的,当前运行的线程随时有可能被挂起,以便其他线程的执行。

(5)一个线程可以创建和撤销另外的一个线程,同一个进程中的线程可以并发执行。

3.多线程的优势

进程在执行过程中拥有独立的内存单元,但是多个线程共享进程的内存单元,大大提高了程序的运行效率;

同一个进程的多个线程之间存在一些共性,它们共享进程的虚拟空间,线程共享的资源包括:进程代码段、进程共有数据等;

a.进城之间不能共享内存,但是线程之间可以共享内存

b.系统创建新的进程要为其重新分配系统资源,但是创建新的线程代价要小很多,所以使用多线程来实现多任务,并发性更好

c.Java内置了很多多线程功能支持,简化了Java的多线程操作

4.线程机制

Java的线程机制是抢占式的,这就表示机制会周期性的中断线程,将上下文切换到其他线程,为每个线程提供时间片,使得每个线程都会有合理的时间来执行他的任务。上下文切换的开销通常小于抢占式系统的


0 0
原创粉丝点击