一起来学大数据|初步了解Java中多线程

一起来学大数据|初步了解Java中多线程

从今天起,让我们一起来学习大数据,每天我会将学习到的知识分享给大家,希望与大家共同成长。今天我们讲Java中的多线程,之前的一下Java小知识点,我会在后面的发文中,慢慢补充进来。

认识线程

要了解线程我们得认识进程。进程是系统中正在运行的程序,同时也是我们计算机系统中资源分配和调度的单位,而且每一个进程都有自己独立的内存空间和系统分配的资源。

那么什么是线程,如果说进程是程序的话,线程那就是一条执行的路径,我们将只有一条执行路径的一个进程称之为单线程程序,将有多条执行路径的一个进程称为多线程程序。

一起来学大数据|初步了解Java中多线程

Java的程序运行原理

我们在运行Java命令是就会启动Java的虚拟机,也就通过主线程是启动JVM。当我们启动了JVM相当于启动了一个应用程序,也相当于启动了一个进程。而这个程会自动启动主线程,然后主线程再去调用某个类的方法,换句话说就是main方法运行在主线程内,之前的所有程序都是单线程的。

有个问题值得深死?jvm虚拟机启动时多线程的,在主线程开启之前,垃圾回收线程也已经开启。

多线程的实现方案

在这里我们创建新的线程有两种方法。

一种方法是将类声明为 Thread 的子类,我们需要去重写run方法。

一起来学大数据|初步了解Java中多线程

方法1(不推荐使用)

第二种方法是声明实现 Runnable 接口的类,然后去实现 run 方法。

一起来学大数据|初步了解Java中多线程

方法2

几个小知识点-

扫描二维码关注公众号,回复: 1864814 查看本文章
  • start()方法来启动线程
  • run()来完成其运行操作
  • 实现接口就必须重写run()方法

获取和设置线程的名称

一起来学大数据|初步了解Java中多线程

获取和设置线程的名称

线程控制

* sleep(long millis) 让线程睡眠多少毫秒

* join 加入线程

* yield 线程让步 但是cpu 的执行不确定

* stop 过期,停止线程

* interrupt 打断 终止休眠

一起来学大数据|初步了解Java中多线程

线程的生命周期图

线程的安全问题

多线程在同步操作时其中的延迟会导致程序的错误,好比卖出相同的火车票,也有可能出现0票的情况。

那么如何解决多线程的安全问题呢?

这里我们将多个语句操作共享数据的代码块给锁起来,让任意时刻只能有一个线程执行。

一起来学大数据|初步了解Java中多线程

同步代码块

当线程相当多时,因为每个线程都会去判断同步上的锁,这是很耗费资源的,无形中会降低程序的运行效率。

我们就开始同步方法来解决代码块带来的问题。同步方法就是将同步关键字加在方法上,同步方法的锁是this

线程等待和唤醒

一起来学大数据|初步了解Java中多线程

线程池

程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,

一起来学大数据|初步了解Java中多线程
一起来学大数据|初步了解Java中多线程

这就是对Java中多线程的简单介绍,希望可以帮助到大家,有什么疑问可以在下方留言哦~

感谢坚持关注的朋友

一起来学大数据|初步了解Java中多线程

世界很大,幸好有你

欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。

聚焦最新科技咨讯,探寻未来智能领域,我是女陶。

猜你喜欢

转载自blog.csdn.net/qq_41147260/article/details/80874725