JAVA编程新手入门基础学习笔记,多线程分析与案例展示

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第1张图片

1:多线程(理解)

线程的定义:线程是进程中负责程序执行的执行单元

线程本身依靠程序进行。运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境。

线程的三种创建格式

继承Thread

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第2张图片

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

继承Thread

2.实现Runnable接口

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第3张图片

实现runnable接口

3.实现Callable接口

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第4张图片

实现Callable接口

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第5张图片

线程的三种创建形式比较

线程的生命周期:

1.新建(new) 2.就绪(start) 3.运行(获得cpu资源) 4.阻塞(sleep,IO阻塞等)

5.死亡(执行完成,Exception/Error)

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第6张图片

线程的生命周期

线程常用方法:

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第7张图片

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

线程常用方法介绍

线程同步:多个线程访问同一个数据时(线程调度的不确定性),很容易出现线程安全问题。解决办法:引入同步监视器,任意时刻只能有一个线程获得对同步监视器的锁定,当同步代码块执行结束后,该线程释放对该同步监视器的锁定。

“加锁”—>”修改共享资源”->”释放锁”

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第8张图片

线程同步的方法

JDK5以后的针对线程的锁定操作和释放操作:

同步锁 (ock锁) Lock对共享资源的独占访问,每次只能一个线程对Lock对象加锁。

Lock,ReadWriteLock接口,对应的实现类ReentrantLock(可重入锁),ReentrantReadWriteLock。

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第9张图片

代码格式

死锁问题:两个线程互相等待对方释放同步监视器,就发生了死锁。

线程组:可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示:

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第10张图片

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织

线程池:

在系统启动时,创建大量空闲的线程,将一个Runnable对象或Callable对象传给线程池,线程池会启动一个线程执行对应的run()或call(),当run()或call()执行完成后,该线程返回到线程池成为空闲状态,等待下个Runnable对象或Callable对象。

案例1:跳动的小球

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第11张图片

跳动的小球实验结果展示

案例2:生产者和消费者实验(线程间通信问题)

JAVA编程新手入门基础学习笔记,多线程分析与案例展示_第12张图片

生产者和消费者实验结果展示

你可能感兴趣的:(JAVA编程新手入门基础学习笔记,多线程分析与案例展示)