汕头网站建设方法港北网站建设

web/2025/10/4 9:30:13/文章来源:
汕头网站建设方法,港北网站建设,企业做国际站哪个网站好,做网站菏泽作者简介#xff1a;大家好#xff0c;我是smart哥#xff0c;前中兴通讯、美团架构师#xff0c;现某互联网公司CTO 联系qq#xff1a;184480602#xff0c;加我进群#xff0c;大家一起学习#xff0c;一起进步#xff0c;一起对抗互联网寒冬 多线程向来是面试的重灾…作者简介大家好我是smart哥前中兴通讯、美团架构师现某互联网公司CTO 联系qq184480602加我进群大家一起学习一起进步一起对抗互联网寒冬 多线程向来是面试的重灾区它真的很难。一般来说普通的开发人员很少有机会能直接写多线程一般都是使用封装好的工具类或者JDK提供的API但并不意味着我们可以不用了解多线程。 学习多线程的好处至少有两点 应付面试深入理解并发编程帮助我们更好地使用JDK提供的锁及JUC工具包 今天我们再来强化一下多线程的基础知识。 线程类与任务类 我在初学多线程时也感到云里雾里后来才发现自己一开始就把一些概念搞错了很多博客或者视频每次都会说“实现”多线程的方式有3种Thread、Runnable和Callable其实我个人是不太认同这种说法的。Thread是线程类另外两个是任务类不是一类事物啊 也即是说JDK看似提供了很多和多线程相关的类实际上有且仅有Thread类能通过start0()方法向操作系统申请线程资源本地方法。 线程池只是对Thread的复用两者本质上可以归为一类这里暂且不讨论 另外JVM的线程和操作系统的线程是一一对应的当我们new一个Thread对象并调用start()方法后JVM的Thread对象就与系统底层的一个线程资源绑定了。 而Runnable和Callable并不会产生线程仅仅用于包裹待执行的任务。如果没有线程或线程池去执行它们只不过是一坨普通的代码。 为了让Thread和Runnable/Callable产生关联通常需要我们手动进行“组合”Thread只能接收RunnableCallable要使用线程池后面再介绍 new Thread(() - {// 把任务包裹在Runnable任务类中通过构造参数传入ThreadSystem.out.println(待执行任务); }).start(); 但实际开发中大家肯定也见过这种写法 new Thread() {Overridepublic void run() {// 直接重写Thread的run()把待执行的任务放里面System.out.println(待执行任务);} }.start(); 注意上面这种写法可不是传入Runnable/Callable而是采用匿名类的方式重写了Thread自己的run()。 总结一下要想让多线程执行一个任务大致有以下几种做法 线程与任务不分离 重写Thread的run()把任务直接塞到Thread内部执行路径是JVM线程--Thread#run() 线程与任务分离推荐 把任务塞到Runnable丢入Thread里执行路径是JVM线程--Thread#run()--target.run()把任务塞到Runnable/Callable丢到线程池里屏蔽内部细节省心省力 注意当Thread#start()向操作系统申请线程后线程的执行入口始终是Thread#run()而不是Runnable/Callable的run() 到这里我们替大家扫清了一些繁杂的概念只需记住Java创建多线程有且仅有一种方式Thread无论是直接通过new Thread().start()或是通过线程池底层其实都是Thread在向操作系统申请资源而且新线程启动后会找到原来的Thread从它的run()方法开始执行。 任务代码是如何被执行到的 上面提到过如果需要多线程帮我们执行任务一般有3种方式 重写Thread#run()将任务包装成Runnable丢入Thread将任务包装成Runnable/Callable丢入线程池 那么为什么我把代码放在这些指定的地方线程就能执行到呢 其实代码的执行顺序说到底也是人为设计、编排的只不过Thread、线程池等设计得更为精妙。整个过程就像一条流水线从上游到下游我们只要把商品放入指定的地方最终就会被封口、打包并装箱。 这里主要介绍方式1、2的原理线程池的执行原理后面会介绍。Thread是如何执行任务的呢关键在于Thread#run() Thread#start()的作用是向操作系统申请线程资源当操作系统分配好线程资源并且当前线程得到CPU执行权时执行的入口一定是Thread#run()。 那么线程执行run()时会发生什么呢 如果我们重写了Thread#run()就会执行我们重写的方法任务和线程不分离如果我们没有重写Thread#run() target为nullrun()为空直接结束target不为null就会执行target的run()。而target就是我们通过Thread构造器传入的Runnable对象 所以如果不重写Thread#run()就一定要传入任务类target否则新建的Thread无任务可执行就浪费了 最后再来回顾一下让线程执行指定任务的几种常见方式 public class AsyncAndWaitTest {public static void main(String[] args) throws ExecutionException, InterruptedException {// 方式1重写Thread#run()Thread thread new Thread() {Overridepublic void run() {System.out.println(Thread.currentThread().getName() 正在执行);}};thread.start();// 方式2构造方法传入Runnable实例new Thread(() - {System.out.println(Thread.currentThread().getName() 正在执行);}).start();// 方式3线程池 Callable/Runnable这里以Callable为例ExecutorService executorService Executors.newSingleThreadExecutor();FutureString submit executorService.submit(() - {System.out.println(Thread.currentThread().getName() 正在执行);Thread.sleep(3 * 1000L);return success;});String result submit.get();System.out.println(result result);// 关闭线程池executorService.shutdown();} } 除了上面3种利用多线程执行任务的方式我们再另外介绍一种初学者可能觉得有点绕、但源码里经常会见到的写法算是Runnable的变种写法 把new Thread().start()隐藏到某个类的内部 重点关注Worker到底是什么以及begin()内部做了什么。不熟悉的同学不妨自己写一下琢磨一下。我们马上会在JDK的某个类中看到类似的写法 总之在我心里Thread的Level要比Runnbale、Callable高一级。看到很多人把它们混在一起不禁想起一句话 萧某大好男儿竟和你这种人齐名 --- 乔峰 作者简介大家好我是smart哥前中兴通讯、美团架构师现某互联网公司CTO 进群大家一起学习一起进步一起对抗互联网寒冬

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简述电子商务的概念优化设计方案

技术背景 一般情况下我们会选择使用明文形式来存储数据,如json、txt、csv等等。如果是需要压缩率较高的存储格式,还可以选择使用hdf5或者npz等格式。还有一种比较紧凑的数据存储格式,就是直接按照二进制格式存储。这种格式下,存储…

网站关键词如何快速上首页wordpress远程下载

目录 vue2的设置方法 vue3的设置方法 1.vue3兼容vue2的写法 2.vue3没有使用setup语法糖 3.vue3的setup会自动生成name 4.使用插件 设置name的用处&#xff1a;页面缓存需要识别页面的唯一name属性才可以缓存 vue2的设置方法 <script>export default {name: "…

网站开发问题网店运营推广网站

1.首先需要使用 composer 在命令行安装最新版本的 intervention/image &#xff1a; composer require intervention/image2.注册服务提供者及别名&#xff08;Laravel 版本 ≤ 5.4&#xff09; 如果你的 laravel 版本小于或等于 5.4&#xff0c;安装后需要注册服务提供者和别…

河北网络推广公司哈尔滨网络建设网络优化

除了前一节讨论的拉电阻基本使用方法外&#xff0c;上拉电阻也可以提升高电平的电压阈值&#xff0c;以便于前后级信号相匹配&#xff0c;比如&#xff0c;TTL逻辑电平驱动CMOS逻辑电平时&#xff0c;我们通常会添加一个上拉电阻R1&#xff0c;如下图所示&#xff1a;But Why&a…

旅游网站结构图建设一个货架网站

https://mastergo.com/files/home 这个网站是一个设计图片的网站 ui设计方面的网站 有很多优秀的资源 比如App设计 可以直接用的图片 和设计模板 也可以像ps 一样 设计自己的图片或者ui图 适合前端和ui开发者使用 可以丰富自己的审美观

怎么做装修网站平台代理公司注册要提供什么资料

在此博客中&#xff0c;我将解释如何为您的Mule CloudHub应用程序启用AWS Cloudwatch日志 。 AWS提供了Cloudwatch Logs Services&#xff0c;以便您可以更好地管理日志。 它比松散便宜。 由于cloudhub会自动翻转超过100 MB的日志&#xff0c;因此我们需要一种机制来更有效地管…

多语言网站 推广网站建设语音

配置路由式Proxy ARP示例 组网图形 图1 配置路由式Proxy ARP组网图 路由式Proxy ARP简介配置注意事项组网需求配置思路操作步骤配置文件 路由式Proxy ARP简介 企业内部进行子网划分时&#xff0c;可能会出现两个子网网络属于同一网段&#xff0c;但是却不属于同一物理网络的情…

网站建设管理属于职业资格吗wordpress模板dux

大家好&#xff01;作为专业吃鸡行家&#xff0c;我将为您带来一些热门话题和实用内容&#xff0c;帮助您提升游戏战斗力&#xff0c;分享顶级游戏作战干货&#xff0c;并提供便捷的作图工具和查询服务。让我们一起享受吃鸡的乐趣&#xff01; 首先&#xff0c;我要推荐一款绝地…

快钱支付需要网站备案吗小程序制作方案

羊大师分析&#xff0c;夏季羊奶的适合人群有哪些&#xff1f; 夏季羊奶的适合人群相当广泛&#xff0c;主要包括以下几类人群&#xff1a; 生长发育中的孩子&#xff1a;羊奶富含营养&#xff0c;特别是蛋白质和矿物质&#xff0c;对孩子的生长发育有积极的促进作用。 中老年…

扁平化 公司网站南通公司快速建站

今天测试部门的人叫我过去&#xff0c;说是数据库当了&#xff0c;起不来了。我过去看了看情况&#xff0c;做了如下操作SQL> shutdown immediate数据库已经关闭。已经卸载数据库。Oracle 例程已经关闭。SQL> startupORACLE 例程已经启动。Total System Global Area 135…

榆次住房保障和城乡建设局网站免费简单网站

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性&#xff1a;封装、继承、多态&#xff0c;真正领悟设计模式的精髓是可能一个漫长的过程&#xff0c;需要大量实践经验的积累。最近看设计模式的书&#xff0…

全屋定制十大品牌排行榜济南网站seo报价

介绍Gogs项目旨在构建一种简单&#xff0c;稳定和可扩展的自托管Git服务&#xff0c;该服务可以通过最轻松的方式进行设置。使用Go语言开发的git自托管服务&#xff0c;部署十分简单&#xff0c;可以在Go支持的所有平台(包括Linux&#xff0c;macOS&#xff0c;Windows和ARM)上…

自微网站如何做好品牌宣传

在数字化时代的到来之后&#xff0c;虚拟货币逐渐成为了一种广为人知的金融工具。虚拟货币是一种数字化的资产&#xff0c;它不像传统货币那样由政府或中央银行发行和监管。相反&#xff0c;虚拟货币通过密码学技术和分布式账本技术来实现去中心化的发行和交易。 虚拟货币的代…

博客wordpress企业网站搭建及优化

fork/join和线程池问题&#xff1a; 启用了Spring且其范围设置为Request的缓存需要由不在请求范围内的singleton bean访问。 解&#xff1a; Spring使您能够创建缓存&#xff0c;该缓存为请求范围保留数据。 例如 import org.springframework.cache.concurrent.ConcurrentMapC…

宁波网站制作定制互联网广告营销是什么

阅读目录 1.理解VUE中的自定义指令回到顶部1.理解VUE中的自定义指令 默认核心指令有 (v-model 和 v-show), 但是有时候我们需要用到自定义指令&#xff0c;在vue中&#xff0c;代码复用主要形式和抽象是组件&#xff0c;但是在有的情况下&#xff0c;我们仍然需要对DOM元素进行…

做网站建设的好处家具网站php源码

常见的最小二乘法我们就不多说了&#xff0c;下面主要介绍一下最小二乘法的一些先进方法。 正则化的最小二乘法 在使用常见的最小二乘法进行回归分析时&#xff0c;常常会遇到过拟合的问题&#xff0c;也就是在训练数据集上表现的很好&#xff0c;但是在测试数据集上表现的很…

关于建设殡葬网站的报告范文wordpress 工具栏图标

看图的时候喜欢在图上直接标注意见&#xff0c;但是如果还要再把意见一行一行的导出到word里面就很麻烦&#xff0c;在网上看了一个审图软件&#xff0c;报价要980&#xff0c;而且那个审图意见做的太复杂了。 我的需求就是把图上标的单行文字和多行文字直接导出来就行&#x…

网站开发与网站设计区别营销网站建设文章

文章转载于微信公众号机器之能&#xff08;ID&#xff1a;almosthuman2017&#xff09;来源&#xff1a;纽约时报杂志 编译&#xff1a;张震、Edison、Rik“编者按”&#xff1a;纽约时报的这篇区块链文章探讨到核心的问题了&#xff0c;互联网应用层分布式架构&#xff08;区块…

菏泽网站建设费用低价建站在哪里买

最近&#xff0c;有网友反映&#xff0c;我的批量查字典工具换到其它的网站就不好用了。对此&#xff0c;我想说的是&#xff0c;互联网包罗万象&#xff0c;网站的各种设置也有所不同&#xff0c;并不是所有的在线字典都可以用Python爬取的。事实上&#xff0c;很多网站为了防…