【无标题】

多线程详细介绍Thread

概述:Thead多线程在生活中非常常见:像银行转账,购买火车票…也是java中比较重要的一部分之一,下面我简单通过项目列子来进一步对多线程进行逐步了解;
1:什么是多任务,什么是进程,线程,多线程;
什么是多任务,在生活中我们举例子像我们吃饭的时候一边吃饭一边玩手机,一边洗澡一边听歌…等等但是我们看着是在执行多件事但是我们其实大脑在同一个时间内只做了一件事;在java中也可以这样理解:简单来说我们要执行的一条线程中为了优化我们的进度,在线程中允许多条进行;以便于解决堵塞和提高我们的效率;
2:

普通方法调用和多线程
普通方法正常执行在方法下执行run方法调用,多线程在当前线程下执行start方法在子线程下执行run方法;子线程和主线程同时交替执行;这样就可以提高我们的开发效率了;
3
什么是进程什么是线程
进程:我们可以认为当我们点开一个程序的时候这就是一个进程,而我们点开这个程序,程序中提供的各种服务可以认为是线程,一个进程有多个线程,就像一个人可以做的事情一样人是主体可以认为是进程,线程是我们要做的事情;
进程他是通过执行启动程序他是一个动态的概念,是系统分配资源的;而线程指的是cpu中执行调度的单位,一个进程至少要要一个线程;
在一个进程中如果有多个线程 ,线程的运行由调度器来分配的先后顺序,调度器与系统紧密相关,不能人为干预干预线程的先后顺序;当对同一份资源进行操作时会产生资源抢夺的情况出现需要加入并发控制;线程会损耗开销:cpu时间调度和并发控制开销…
每个线程在自己的工作区内交互如果产生内存控制不当会导致数据不一致;
4:
线程的创建: Thread和Runnble和Callable创建方式:
1:Thread创建方法:在这里插入图片描述

我们创建一个class类然后通过继承Thread方法 重写我们的run方法 在run方法中是我们需要自己输入的的一些实现;通过Thread对象点run来对我们主线程的启动顺序进行调度;
在这里插入图片描述
2:我们通过一个简单多线程的列子来对我们的图片进行下载操作:
首先我们需要配置一个pom文件
在这里插入图片描述

我们创建好我们的类文件创建一个WebDownloader下载器类然后提供io的方法FileUtils创建一个下载地址和文件 ,创建有参构造函数通过2个String类型的对象接收数据;
在这里插入图片描述
然后我们在Thread1类继承Thread 类 重写run 方法子线程传参;然后通过主线程对我们需要下载的图片进行copy图片url地址 和设置文件名 就可以对我们线程进行多线程下载网图了(我们的url需要copy网络源码地址然后在本地下载 )
在这里插入图片描述

在这里插入图片描述
执行结果
在这里插入图片描述
这样我们使用多线程下载网图的列子就做好了

3:声明实现类实现Runnble接口方法
我们的Thread 类实现Runnble 接口
在这里插入图片描述
我们这里将Thread3放入Thread对象中 代理就都可以实现线程的方法了
在这里插入图片描述
4:如何使用多个线程实现体一个对象的并发问题
这里我们通过一个简单的例子去模仿一下:
在这里插入图片描述

首先我们在重写的run 方法中添加一个循环判断 如果当前次数小于0 就会停止 然后在主线程下模仿买票创建多个Thread 对像引用类名 去添加 模仿买票

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值