专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 常见问题 Java开发教程之多线程基础开发

Java开发教程之多线程基础开发

更新时间:2020-06-01 15:58:24 来源:动力节点 浏览1507次

1.线程与并发

1.1.理解线程与进程的区别(了解)

进程:是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程(1,n)。比如在Windows的任务管理器中,一个运行的xx.exe就是一个进程。

线程:是指进程中的一个执行任务(控制单元),一个进程中可以运行多个线程,多个线程可共享数据。

多进程:操作系统中同时运行的多个程序。

多线程:在同一个进程中同时运行的多个任务。

一个进程至少有一个线程,为了提高效率,可以在一个进程中开启多个控制单元,这就是多线程。

1.2.主线程main(了解)

在运行一个简单的Java程序的时候,就已经存在了两个线程,一个是主线程,一个是后台线程——维护的垃圾回收。主线程很特殊,在启动JVM的时候自动启动的。

1.3.线程的创建和启动(掌握)

方式一,继承Thread类:

自定义类继承Thread

覆写run方法

创建自定义类对象

自定义类对象调用start方法

Java开发教程之多线程基础开发

方式二,实现Runnable接口

自定义类实现Runnable接口

覆写run方法

创建自定义类对象

把自定类的对象作为Thread类构造器参数,并调用Thread对象start方法

Java开发教程之多线程基础开发

第一种使用起来方便,启动一个线程也方便,很多功能都在Thread类中定义好了;

第二种方式启动得依赖于Thread,因为本身Runnable中只有run方法,请看Thread的构造方法。

1.3.1.线程体-run方法(掌握)

不管哪种方式创建的线程,都得覆写run方法,因为这是线程体方法,该方法在线程启动之后会自动被调用。

public void run(){

//线程体,线程启动时,会自动调用本方法,所有这里是我们写代码的主体部分

}

线程的执行随机性:

一旦一个线程启动之后就是一个独立的线程,等待CPU的调度分配资源,不会因为启动它的外部线程结束而结束。

Java开发教程之多线程基础开发

多次运行该程序,观察每次运行的结果。

1.3.2.线程的启动(掌握)

启动线程必须调用线程类Thread中的start方法,该方法应该由Thread类的一个实例来调用,下面是方法签名:

public void start()

底层会调用该线程的run方法。

只有调用了线程对象的start方法才会开启一个新的线程,如果是直接调用对象的run方法不会开启新的线程,只是一个单线程。

注意:启动一个新线程,不能使用run()方法,只能使用start方法。

以上就是动力节点java培训机构的小编针对“Java开发教程之多线程基础开发”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>