java基础之多线程、进程、主线程

来源:互联网 发布:sql注入技能树 编辑:程序博客网 时间:2024/05/07 18:13

多线程


进程:每个在系统中运行的程序都可以称为一个进程。(本质是一个应用程序运行时的内存分配空间)

线程(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方法中即可。


多线程的实现方式(创建新线程的方法)点击查看

0 0
原创粉丝点击