运动网站建设教程网页设计在线培训班

张小明 2026/1/14 8:18:15
运动网站建设教程,网页设计在线培训班,济宁融合百度推广公司,海南专业网站运营托管文章目录Java面试必问#xff1a;什么是阻塞式方法#xff1f;一、引言#xff1a;阻塞式方法是什么#xff1f;二、生活中的阻塞式方法三、Java中的阻塞式方法1. 输入输出流的read()方法2. 线程睡眠Thread.sleep()3. 等待锁四、阻塞式方法的优缺点优点缺点五、如何避免阻塞…文章目录Java面试必问什么是阻塞式方法一、引言阻塞式方法是什么二、生活中的阻塞式方法三、Java中的阻塞式方法1. 输入输出流的read()方法2. 线程睡眠Thread.sleep()3. 等待锁四、阻塞式方法的优缺点优点缺点五、如何避免阻塞1. 非阻塞式编程2. 异步编程3. 响应式编程六、总结希望这篇长文对你有所帮助如果你有其他问题随时可以问我哦 领取 | 1000 套高质量面试题大合集无套路闫工带你飞一把Java面试必问什么是阻塞式方法大家好我是闫工。今天我们要聊一个Java面试中必问的问题——“什么是阻塞式方法”这个问题看起来简单但里面可大有文章。作为一个老司机码农我不仅要告诉你们答案还要用一些生活中的例子和代码来让这个概念更加生动有趣。一、引言阻塞式方法是什么首先我们得弄清楚什么是阻塞式方法。阻塞式方法简单来说就是一种会让程序执行“卡住”的方法。就像你在马路上等红绿灯一样车不能动人也不能走只能等信号变了才能继续前进。在Java中阻塞式方法通常指的是那些会一直等待某个操作完成直到条件满足或资源可用才会返回的方法。这些方法会让调用它们的线程进入阻塞状态无法执行其他任务。二、生活中的阻塞式方法为了更好地理解这个概念我们可以从生活中找一些例子红绿灯你开车到路口遇到红灯只能等绿灯亮了才能继续前进。这就是一个典型的阻塞过程。银行排队你去银行办理业务发现所有柜台都在忙只好坐在椅子上等待叫号。直到有空闲的柜员为止这个等待的过程也是阻塞式的。这些例子告诉我们阻塞式方法的核心在于“等待”而这种等待会占用资源影响效率。三、Java中的阻塞式方法现在我们回到编程世界看看Java中有哪些常见的阻塞式方法。1. 输入输出流的read()方法InputStream的read()方法就是一个典型的阻塞式方法。假设你从网络上读取数据如果数据还没到达read()就会一直等待直到数据到来或者连接被关闭。// 阻塞式代码示例publicclassBlockingExample{publicstaticvoidmain(String[]args){try(BufferedReaderreadernewBufferedReader(newFileReader(file.txt))){Stringline;while((linereader.readLine())!null){// 这里会阻塞直到读取到数据或者文件结束System.out.println(line);}}catch(IOExceptione){e.printStackTrace();}}}2. 线程睡眠Thread.sleep()Thread.sleep()也是一个常见的阻塞式方法。它会让当前线程暂停执行指定的时间这段时间内线程无法处理任何任务。publicclassSleepExample{publicstaticvoidmain(String[]args){try{System.out.println(Going to sleep...);Thread.sleep(2000);// 阻塞2秒System.out.println(Woke up!);}catch(InterruptedExceptione){e.printStackTrace();}}}3. 等待锁在多线程编程中当一个线程试图获取一个已经被其他线程占用的锁时它会进入阻塞状态直到锁被释放。publicclassLockExample{privatefinalObjectlocknewObject();publicvoidsomeMethod(){synchronized(lock){// 如果lock被其他线程占用当前线程会被阻塞try{Thread.sleep(1000);// 模拟长时间操作}catch(InterruptedExceptione){e.printStackTrace();}}}}四、阻塞式方法的优缺点优点简单易用阻塞式编程通常比非阻塞式编程更容易理解和实现。资源控制在某些情况下阻塞可以确保资源不会被多个线程同时访问从而避免竞争条件。缺点性能问题如果一个线程因为等待某个操作而被阻塞它将无法执行其他任务这可能导致资源浪费和性能下降。潜在的死锁风险在复杂的多线程环境中如果不小心管理锁可能会导致死锁。五、如何避免阻塞虽然阻塞式方法有其用途但在高并发场景下我们通常希望避免使用它们。以下是一些替代方案1. 非阻塞式编程非阻塞式方法不会让线程一直等待而是会立即返回一个状态告诉调用者当前操作是否完成。publicclassNonBlockingExample{publicstaticvoidmain(String[]args){FutureTaskStringtasknewFutureTask(()-{Thread.sleep(2000);returnHello, non-blocking world!;});newThread(task).start();System.out.println(Doing other things...);// 其他任务try{Stringresulttask.get();// 这里会阻塞直到任务完成System.out.println(result);}catch(InterruptedException|ExecutionExceptione){e.printStackTrace();}}}2. 异步编程异步编程允许我们在等待某个操作完成时继续执行其他任务。Java提供了CompletableFuture来支持异步编程。importjava.util.concurrent.CompletableFuture;importjava.util.concurrent.ExecutionException;publicclassAsyncExample{publicstaticvoidmain(String[]args){CompletableFutureStringfutureCompletableFuture.supplyAsync(()-{try{Thread.sleep(2000);}catch(InterruptedExceptione){e.printStackTrace();}returnHello, async world!;});System.out.println(Doing other things...);future.whenComplete((result,exception)-{if(exception!null){exception.printStackTrace();}else{System.out.println(result);}});// 防止主线程结束try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}}}3. 响应式编程响应式编程通过观察者模式来处理异步事件。Java的RxJava是一个流行的响应式编程库。importio.reactivex.Observable;importio.reactivex.observers.DisposableObserver;publicclassReactiveExample{publicstaticvoidmain(String[]args){ObservableStringobservableObservable.create(emitter-{try{Thread.sleep(2000);emitter.onNext(Hello, reactive world!);emitter.onComplete();}catch(InterruptedExceptione){e.printStackTrace();}});DisposableObserverStringobservernewDisposableObserverString(){OverridepublicvoidonNext(Stringvalue){System.out.println(value);}OverridepublicvoidonError(Throwablee){e.printStackTrace();}OverridepublicvoidonComplete(){System.out.println(Completed!);}};observable.subscribe(observer);// 防止主线程结束try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}}}六、总结阻塞式方法在简单场景下非常有用但在高并发和高性能需求的系统中它们可能导致性能瓶颈。通过使用非阻塞、异步或响应式编程技术我们可以更高效地利用资源并提高系统的吞吐量。希望这篇长文对你有所帮助如果你有其他问题随时可以问我哦 领取 | 1000 套高质量面试题大合集无套路闫工带你飞一把成体系的面试题无论你是大佬还是小白都需要一套JAVA体系的面试题我已经上岸了你也想上岸吗闫工精心准备了程序准备面试想系统提升技术实力闫工精心整理了1000 套涵盖前端、后端、算法、数据库、操作系统、网络、设计模式等方向的面试真题 详细解析并附赠高频考点总结、简历模板、面经合集等实用资料✅ 覆盖大厂高频题型✅ 按知识点分类查漏补缺超方便✅ 持续更新助你拿下心仪 Offer免费领取 点击这里获取资料已帮助数千位开发者成功上岸下一个就是你✨
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

有没有专做自驾游的网站专业商铺装修设计

Zotero Style插件全面使用指南:让文献管理更高效 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。 项目地址: http…

张小明 2026/1/3 1:58:17 网站建设

做ptt网站wordpress 文章形式

3分钟搞定视频色彩优化:LosslessCut让你的视频瞬间变专业 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 还在为视频色彩暗淡、曝光不准而烦恼吗&#xff…

张小明 2026/1/4 3:55:31 网站建设

南京网站建设培训上辽宁建设工程信息网站

EDM主题设计:‘你还没用上的那个GPU加速开关’ 在AI模型部署的战场上,一个看似不起眼的技术选择,往往决定了系统是“勉强可用”还是“丝滑流畅”。比如,当你的PyTorch服务每秒只能处理20个请求,而竞品却轻松扛住120 QP…

张小明 2026/1/9 16:02:31 网站建设

网站首页是什么长沙百度做网站多少钱

工业物联网与边缘计算网关简介 在当今数字化浪潮席卷全球的时代,工业物联网(Industrial Internet of Things, IIoT)作为制造业与信息技术深度融合的产物,正以前所未有的速度改变着传统工业的生产模式和运营方式。随着《中国制造 2025》和 “互联网 +” 国家战略的深入推进,…

张小明 2026/1/3 4:04:38 网站建设

购买域名和网站南京网站建设招标

FLUX.1-dev-Controlnet-Union视觉控制实战:从快速入门到深度定制 【免费下载链接】FLUX.1-dev-Controlnet-Union 项目地址: https://ai.gitcode.com/hf_mirrors/InstantX/FLUX.1-dev-Controlnet-Union 你是否曾为AI图像生成中的控制精度而烦恼?当…

张小明 2026/1/3 4:04:37 网站建设

404过多会不会影响网站排名向自己做网站

还在为技术文档的可视化表达而头疼吗?Mermaid Live Editor作为一款革命性的在线图表工具,通过简洁的文本语法快速生成专业级图表。这款基于React开发的实时编辑器支持流程图、序列图、甘特图等多样化图表类型,为系统设计、项目管理和技术沟通…

张小明 2026/1/9 16:19:09 网站建设