1.线程与并发
1.1.理解线程与进程的区别(了解)
进程:是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程(1,n)。比如在Windows的任务管理器中,一个运行的xx.exe就是一个进程。
线程:是指进程中的一个执行任务(控制单元),一个进程中可以运行多个线程,多个线程可共享数据。
多进程:操作系统中同时运行的多个程序。
多线程:在同一个进程中同时运行的多个任务。
一个进程至少有一个线程,为了提高效率,可以在一个进程中开启多个控制单元,这就是多线程。
1.2.主线程main(了解)
在运行一个简单的Java程序的时候,就已经存在了两个线程,一个是主线程,一个是后台线程——维护的垃圾回收。主线程很特殊,在启动JVM的时候自动启动的。
1.3.线程的创建和启动(掌握)
方式一,继承Thread类:
自定义类继承Thread
覆写run方法
创建自定义类对象
自定义类对象调用start方法
方式二,实现Runnable接口
自定义类实现Runnable接口
覆写run方法
创建自定义类对象
把自定类的对象作为Thread类构造器参数,并调用Thread对象start方法
第一种使用起来方便,启动一个线程也方便,很多功能都在Thread类中定义好了;
第二种方式启动得依赖于Thread,因为本身Runnable中只有run方法,请看Thread的构造方法。
1.3.1.线程体-run方法(掌握)
不管哪种方式创建的线程,都得覆写run方法,因为这是线程体方法,该方法在线程启动之后会自动被调用。
publicvoidrun(){
//线程体,线程启动时,会自动调用本方法,所有这里是我们写代码的主体部分
}
线程的执行随机性:
一旦一个线程启动之后就是一个独立的线程,等待CPU的调度分配资源,不会因为启动它的外部线程结束而结束。
多次运行该程序,观察每次运行的结果。
1.3.2.线程的启动(掌握)
启动线程必须调用线程类Thread中的start方法,该方法应该由Thread类的一个实例来调用,下面是方法签名:
publicvoidstart()
底层会调用该线程的run方法。
只有调用了线程对象的start方法才会开启一个新的线程,如果是直接调用对象的run方法不会开启新的线程,只是一个单线程。
注意:启动一个新线程,不能使用run()方法,只能使用start方法。
以上就是动力节点Java培训机构小编介绍的“Java线程学习教程:多线程基础开发”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习