首页 > 代码库 > 多线程

多线程

 

几乎所有的操作系统都支持运行多个任务,一个任务就是一个程序,一个运行中的程序就是进程,当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程,进程是系统进行资源分配和调度的一个独立单位

进程有三个特征:

1.独立性,他有自己地盘,有自己的队伍,他不允许别人进来,别人就进不来

2.动态性:程序只是一个充气娃娃,虽然由各种指令集合组成,但是她是静态不能动的,进程是一个活人,是一个能活动的指令集合,有自己的寿命和喜怒哀乐

3.并发性:在一个处理器上几个进程可以并发执行,多个进程之间不会互相影响(同一时刻只能有一条指令执行,但是多个进程指令被快速轮换执行,使得宏观上看起来具有多个进程同时执行的效果)

大部分操作系统支持多进程并发进行,多线程则扩展了多进程的概念,就像进程在操作系统中的工作方式一样,所以进程被称为“轻量级进程”

多线程:同时可以执行多个顺序执行流,多个顺序流之间互不干扰。好比餐厅服务员,单线程是 只雇佣一个服务员,给一桌上完菜以后才可以给另一桌上,多线程是雇佣好几个服务员,同时给好几桌上上菜.

线程可以拥有自己的堆栈、自己的程序计数器和自己的局部变量,但不拥有系统资源,他与父进程的其他线程共享该进程所拥有的全部资源

使用多线程编程优势:

1.进程之间不能共享内存,线程之间可以

2.系统创建进程时需要为该进程重新分配系统资源,创建线程代价小的多

3.java语言内置了多线程功能的支持,,而不是单纯的作为底层操作系统的调度方式,从而简化了java的多线程编程

线程的创建和启动

1.继承Thread类创建线程类

技术分享

2.实现Runnable接口创建线程类

多线程