多线程启蒙

1. 使用多线程的原因

  • 想要节省时间,或者是数据量大时,都可以使用多线程

    i:比如说:在项目中 上传文件或下载文件时候,每个文件都可看做是独立的,但是他们都是做同一件事情,那就是上传,都是调用了上传的方法。那样就是方法体是公用的。不相同的是文件体(文件流,属性)。所以就是可以用多线程的方式去启动调用上传方法啊

    i:比如说:需要将List里面的东西都执行一遍的话,也可以选择是多线程去执行啊

2.多线程使用方法

  • 实现runnable接口
  • 继承Thread类
  • 实现callable接口

其中runnable,Thread是没有返回值的,callable才有返回值,而且是阻塞式的,可接受报错.

● runable,Thread没有返回值,但是可以利用公共资源获取线程执行的值,但是这两个是异步的,所以需要阻塞感知的话,需要利用 java.util.concurrent.CountDownLatch 计算类去阻塞异步线程
最终等待得到结果,而这个结果可以是一个安全的公共资源
List–>Collections.synchronizedList/CopyOnWriteArrayList/ConcurrentHashMap
如图:

在这里插入图片描述
● callable的话可以使用 Future 对象来接受
如图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值