什么是多线程?java
在java语言里最大的特色是支持多线程的开发(也是为数很少支持多线程的编程语言),因此在整个的Java技术的学习里面,若是你不可以对多线程的概念有一个全面而且细致的了解,则在往后进行一些项目设计的过程之中尤为是并发访问设计的过程当中,会出现严重的技术缺陷。编程
若是想要理解线程,那么首先须要了解一下进程的概念,在传统的DOS系统时代,其自己有一个特征:若是你电脑上出现了病毒,那么全部的程序将没法执行,由于系统的DOS采用的是单进程处理,而单进程处理的最大特色:在同一个时间段只容许一个程序在执行。多线程
那么后来到了Windows的时代就开启了多进程的设计,因而就表示在一个时间段上能够同时运行多个程序,而且这些程序将进行资源的轮流抢占,因此在同一个时间段上会有多个程序依次执行,可是在同一个时间点上只会有一个进程执行,然后来到了多核的CPU,因为能够处理的CPU多了,那么即使有再多的进程出现,也能够比单核CPU处理的速度有所提高。并发
线程是在进程基础之上划分的更小的程序单元,线程是在进程基础上建立而且使用的,因此线程依赖于进程的支持可是现成的启动速度要比进程快许多,因此当使用多线程进行并发处理的时候,其执行的性能要高于进程。less
Java是多线程的编程语言,因此Java在进行并发访问处理的时候能够获得更高的处理性能。编程语言
线程运行状态性能
对于多线程的开发而言,编写程序的过程之中老是按照:定义线程主体类,然后经过Thread类进行线程的启动,可是并不意味着你调用了start()方法,线程就已经开始运行了,由于总体的线程处理有本身的一套运行的状态。学习
1 任何一个线程的对象都应该使用Thread类进行封装,因此线程的启动使用的是start(),可是启动的时候实际上若干个线程都将进入到一种就绪状态,如今并无执行;阿里云
2 进入到就绪状态以后就须要等待进行资源调度,当某一个线程调度成功以后则进入到运行状态(run()方法),可是全部的线程不可能一直持续执行下去,中间须要产生一些暂停的状态,例如:某个线程执行一段时间以后就须要让出去资源,然后这个进程就将进入到阻塞状态,随后从新回归到就绪状态;线程
3 当run()方法执行完毕以后,实际上该线程的主要任务也就结束了,那么此时就能够直接进入到中止状态。
Java高级编程免费课程:阿里云大学——开发者课堂