java基础之多线程
来源:互联网 发布:淘宝卖家发错快递 编辑:程序博客网 时间:2024/06/10 13:43
多线程
进程:每个在系统中运行的程序都可以称为一个进程。(本质是一个应用程序运行时的内存分配空间)
线程(Thread):是进程中一个负责应用程序执行顺序的执行路径(控制单元),是进程中的实际运作单位。
多线程:当在一个程序中同时运行多个线程完成不同的工作时,称之为多线程。
每个进程最少要有一个线程运行,开启多线程是为了同时运行多部分代码(多线程的目的)。
主线程:JVM在启动时,首先会有一个主线程负责程序的执行,主线程执行的代码都在main()方法里。(当产生垃圾时,收垃圾的动作是不需要主线程来完成的。因为如果用主线程来完成回收垃圾的动作的话,会造成在主线程中运行的程序停止运行,转而去运行垃圾回收器代码,使得效率降低,所以由单独的一个线程来负责垃圾回收)
注意细节:
1、多线程中的随机性:因为cpu的快速切换,所以哪个线程获取到了cpu的执行权,哪个线程就执行。线程的执行是随机的
2、返回当前线程的名称:thread.currentthread().getname()
3、线程中要运行的代码都统一存放到run方法中。
4、线程要运行必须通过类中指定的方法开启:start方法(启动后,就多了一条执行路径)
start方法:启动了线程,让jvm调用了run方法。
多线程的优缺点:
优点:解决了多部分代码同时运行的问题。在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入休闲状态。
缺点:线程太多会消耗内存空间和CPU时间,降低系统的运行性能(更多的CPU时间放到了线程切换动作中)。
误区:多线程并不是线程越多越快,多线程多线程技术是为了并发执行多项任务,不会提高单个算法本身的执行效率。其实应用程序的执行都是CPU在做着快速切换动作完成的,这个切换是随机的。
创建新线程
目的:开启一条新的执行路径,去运行指定的代码和其他代码实现同时运行。而运行的指定代码就是这个执行路径的任务。
自定义的线程的任务在哪儿?
Thread类用于描述线程,线程是需要任务的,所以thread类也有对任务的描述。这个任务就通过Thread类中的run方法来体现,run方法就是封装自定义线程运行任务的函数。run方法中定义的就是线程要运行的任务代码。
开启线程是为了运行指定代码,所以只有继承Thread类,并覆盖run方法,将要运行的代码定义在run方法中即可。
- java基础之多线程
- java基础之多线程
- Java基础之多线程
- java基础之多线程
- java基础之多线程
- Java基础之多线程
- Java基础之多线程
- Java基础之多线程
- JAVA基础之多线程
- Java基础之多线程
- java基础之多线程
- Java基础之多线程
- java基础之多线程
- java基础之多线程
- Java基础之多线程
- Java基础之多线程
- Java基础之多线程
- Java基础之多线程
- n个数的排序
- MFC学习笔记12 创建动态DLL库
- HDU 2007 平方和与立方和
- 机器学习——梯度下降算法
- Non-square Equation CodeForces
- java基础之多线程
- 数据结构-双向链表实现栈
- ubuntu16.04安装TensorFlow的正确步骤
- Struts1.x 总结
- 创建多线程的几种方法
- jvm加载class文件的原理机制分析
- 导入安卓工程项目报错的笔记
- 使用Comparable接口类型表示泛型
- 字节流demo