
多线程
文章平均质量分 54
飞扬晴雪
在IT行业混迹6年,喜欢研究新技术,相信“技术可以改变生活”。
展开
-
线程异步中CompletableFuture中方法处理方案实例
线程异步中CompletableFuture各种处理方案实例1.线程异步1.1CompletableFuture1.1.1supplyAsync方法1.1.1.1 supplyAsync代码示例1.1.2runAsync方法1.1.2.1 runAsync 代码示例1.1.3thenRunAsync方法1.1.3.1 thenRunAsync代码示例1.1.4 supplyAsync方法1.1.4.1 supplyAsync代码示例1.1.5 thenAccept方法1.1.5.1 thenAccept代码原创 2021-07-05 17:19:34 · 253 阅读 · 0 评论 -
线程的安全机制:锁的使用示例
线程的安全机制:锁的使用示例1.线程和锁含义1.2 线程中锁的作用1.3锁的分类1.3.1Lock锁1.3.1.1 Lock锁代码示例1.3.1.2 Lock锁代码效果1.3.2 reentrantLock锁1.3.2.1 reentrantLock锁代码示例1.3.2.2 reentrantLock锁代码效果1.3.3 synchronized锁1.3.3.1 synchronized锁代码示例1.3.3.2 synchronized锁代码效果1.3.4 AtomicReference锁1.3.4.1 A原创 2021-07-05 15:47:37 · 247 阅读 · 0 评论 -
JAVA-线程优先级setPriority
JAVA-线程优先级setPriority1. 说明线程分为1-10级,10级最高,优先级的高低不代表线程优先执行,需要看CPU的情况,一般情况下优先级高的先执行,程序先执行主方法,在执行线程。2. 代码实现public class TestPriorty { public static void main(String[] args) { //主线程 System.out.println(Thread.currentThread().getName()+"线原创 2021-04-19 17:16:17 · 398 阅读 · 0 评论 -
JAVA-线程--处理线程并发的思路:代理对象和真实对象
JAVA-线程–处理并发的思路:代理对象和真实对象1. 含义:代理对象和 代理对象,都必须继承同一个接口 ,重写接口的方法,然后代理对象调用真实对象,调用真实对象的方法。可以让代理对象处理真实对象实现不了的一些操作,让真实对象更专注处处理自己事务。2. 实例代码实现业务说明:结婚需要请婚庆公司帮忙处理婚礼的事情public class StaticProxy { public static void main(String[] args) { You you=new Yo原创 2021-04-19 16:36:38 · 323 阅读 · 0 评论 -
JAVA-线程--线程池ExecutorService 接口的说明和使用实例
JAVA-线程–线程池ExecutorService 接口的说明和使用实例1. 说明:调用工厂类Executors来创建线程池,创建的线程池有四种:newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool: 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。**newScheduledThreadPool :**创建一个定长线程池,支持定时及周期性任务执行。newS原创 2021-04-19 16:08:55 · 457 阅读 · 0 评论 -
JAVA—线程--死锁
JAVA—线程–死锁1. 说明一个线程锁住资源,另外一个线程也需要使用该资源,导致无法两个线程无法进行下去,形成僵持2. 产生死锁的原因:1>.互斥原因:一个资源只能被一个进程使用2>.请求与保持条件:一个进程因为请求资源而阻塞,对已获得的资源保持不放3>.不剥夺条件:简称已经获得资源,在未使用之前,不能强行剥夺4>.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系3. 代码示例:**代码实现业务:**两个女孩化妆,都需要使用镜子 和 口红,第一个女孩先原创 2021-04-19 15:48:06 · 95 阅读 · 0 评论 -
Java--线程的几种状态:1.创建;2.就绪;3.运行中;4.阻塞;5.死亡
Java–线程的几种状态:1.创建;2.就绪;3.运行中;4.阻塞;5.死亡一.说明创建(new)创建一个方法就绪(Runnable)调用线程的.start()运行中(Running)线程开始执行run()方法内的代码阻塞(Blocked)线程因为一些原因,暂时停止执行,并没有结束,等待执行,可能有以下原因1>线程通过调用sleep方法进入睡眠状态;2>线程调用一个在I/O上被阻塞的操作,即该操作在输入输出操作完成之前不会返回到它的调用者;3>线程试图得到一个锁,原创 2021-04-19 11:08:26 · 107 阅读 · 0 评论 -
JAVA--线程的锁:synchronized与ReentrantLock 的区别和使用场景实例
JAVA–线程的锁:synchronized与ReentrantLock 的区别和使用场景实例1.说明:synchronized:是一个关键词,主要是对方法和代码块进行修饰,主要对会引起不安全的线程的进行处理,处理时需要考虑引起不安全的原因是由什么引起的。对方法修饰:synchronized class 类名{}对代码块进行修饰:synchronized (变量){代码块}ReentrantLock对代码块进行修饰,通过上锁和解锁两部来完成对线程的控制,通过try{} 来上锁执行代码块和 fi原创 2021-04-19 10:22:25 · 805 阅读 · 0 评论