网站流量一直做不起来旅游网站建设步骤

web/2025/10/9 6:05:27/文章来源:
网站流量一直做不起来,旅游网站建设步骤,生活中好的设计产品,建网站外包公司织机原理为什么为什么#xff1f; Java 8流背后的驱动程序之一是并发编程。 在流管道中#xff0c;指定要完成的工作#xff0c;然后任务将自动分配到可用处理器上#xff1a; var result myData.parallelStream().map(someBusyOperation).reduce(someAssociativeBinOp)… 织机原理 为什么为什么 Java 8流背后的驱动程序之一是并发编程。 在流管道中指定要完成的工作然后任务将自动分配到可用处理器上 var result myData.parallelStream().map(someBusyOperation).reduce(someAssociativeBinOp).orElse(someDefault); 当数据结构便宜且可拆分成多个部分且操作使处理器繁忙时并行流将发挥出色的作用。 这就是它的设计目的。 但是如果您的工作负载包含大部分阻塞的任务那么这对您没有帮助。 那是您典型的Web应用程序可以处理许多请求每个请求都花费大量时间等待REST服务数据库查询等结果。 1998年令人惊奇的是Sun Java Web ServerTomcat的前身在单独的线程而不是OS进程中运行每个请求。 这样就可以满足数千个并发请求 如今这并不令人惊讶。 每个线程占用大量内存典型服务器上不能有数百万个线程。 这就是为什么服务器端编程的现代口号是“永不阻塞” 相反您指定一旦数据可用就应该发生什么。 这种异步编程风格非常适合服务器使它们可以轻松支持数百万个并发请求。 对于程序员来说不是那么好。 这是使用HttpClient API的异步请求 HttpClient.newBuilder().build().sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenAccept(response - . . .);.thenApply(. . .);.exceptionally(. . .); 我们通常用语句实现的功能现在被编码为方法调用。 如果我们喜欢这种编程风格就不会在Lisp中使用我们的编程语言来编写语句和编写快乐的代码。 诸如JavaScript和Kotlin之类的语言为我们提供了“异步”方法在该方法中我们编写语句然后将这些语句转换为您刚刚看到的方法调用。 很好只不过它意味着现在有两种方法-常规方法和转换方法。 而且您不能混合使用它们“红色药丸/蓝色药丸”分界。 Project Loom从Erlang和Go等语言中获得指导在这些语言中阻塞并不是什么大问题。 您可以在“光纤”或“轻型线程”或“虚拟线程”中运行任务。 该名称尚待讨论但我更喜欢“光纤”因为它很好地表示了多个光纤在一个承载线程中执行的事实。 当发生阻塞操作例如等待锁定或I / O时光纤将停放。 停车比较便宜。 如果很多时候都停放了一根载运纤维则可以支撑一千根纤维。 请记住Project Loom不能解决所有并发问题。 如果您有大量计算任务并且想让所有处理器内核都忙它对您无济于事。 它对使用单个线程的用户界面没有帮助用于序列化对不是线程安全的数据结构的访问。 在该用例中继续使用AsyncTask / SwingWorker / JavaFX Task 。 当您有很多任务花费大量时间阻塞时Project Loom很有用。 注意 如果您已经待了很长时间您可能还记得Java的早期版本具有映射到OS线程的“绿色线程”。 但是有一个关键的区别。 当绿色线程被阻塞时其承载线程也被阻塞从而阻止了同一承载线程上的所有其他绿色线程取得进展。 踢轮胎 在这一点上Project Loom仍处于探索阶段。 API会不断变化因此在假期过后尝试使用该代码时请准备好适应最新的API版本。 您可以从http://jdk.java.net/loom/下载Project Loom的二进制文件但是它们很少更新。 但是在Linux机器或VM上自己构建最新版本很容易 git clone https://github.com/openjdk/loom cd loom git checkout fibers sh configure make images 根据已安装的内容 configure可能会出现一些故障但是消息会告诉您需要安装哪些软件包以便继续进行。 在API的当前版本中光纤或现在称为虚拟线程的虚拟线程表示为Thread类的对象。 这是三种生产纤维的方法。 首先有一个新的工厂方法可以构造OS线程或虚拟线程 Thread thread Thread.newThread(taskname, Thread.VIRTUAL, runnable); 如果您需要更多自定义则有一个构建器API Thread thread Thread.builder().name(taskname).virtual().priority(Thread.MAX_PRIORITY).task(runnable).build(); 但是一段时间以来手动创建线程一直被认为是较差的做法因此您可能不应执行任何一种操作。 而是将执行程序与线程工厂一起使用 ThreadFactory factory Thread.builder().virtual().factory(); ExecutorService exec Executors.newFixedThreadPool(NTASKS, factory); 现在熟悉的固定线程池将以与以往相同的方式从工厂调度虚拟线程。 当然还将有OS级别的载体线程来运行这些虚拟线程但这是虚拟线程实现的内部。 固定线程池将限制并发虚拟线程的总数。 默认情况下从虚拟线程到承载线程的映射是通过使用系统属性jdk.defaultScheduler.parallelism或默认情况下Runtime.getRuntime().availableProcessors()所给定数量的内核的jdk.defaultScheduler.parallelism池完成的。 您可以在线程工厂中提供自己的调度程序 factory Thread.builder().virtual().scheduler(myExecutor).factory(); 我不知道这是否是人们想要做的。 为什么载具线程多于核心 返回我们的执行人服务。 您可以在虚拟线程上执行任务就像在OS级线程上执行任务一样 for (int i 1; i NTASKS; i) {String taskname task- i;exec.submit(() - run(taskname)); } exec.shutdown(); exec.awaitTermination(delay, TimeUnit.MILLISECONDS); 作为一个简单的测试我们可以在每个任务中入睡。 public static int DELAY 10_000;public static void run(Object obj) {try {Thread.sleep((int) (DELAY * Math.random()));} catch (InterruptedException ex) {ex.printStackTrace();}System.out.println(obj);} 如果现在将NTASKS设置为1_000_000并在工厂生成器中.virtual() 则该程序将失败并显示内存不足错误。 一百万个OS级线程占用大量内存。 但是使用虚拟线程它可以工作。 至少它应该工作并且对我之前的Loom版本确实有效。 不幸的是在12月5日下载的构建中我得到了一个核心转储。 当我尝试使用Loom时这时有发生。 希望在您尝试此操作时可以解决此问题。 现在您可以尝试更复杂的事情了。 亨氏·卡布兹Heinz Kabutz最近为益智游戏提供了一个程序该程序可加载数千个Dilbert卡通图像。 对于每个日历日都有一个页面例如https://dilbert.com/strip/2011-06-05 。 程序读取这些页面在每个页面中找到卡通图像的URL然后加载每个图像。 这是一堆混乱的期货 有点像 CompletableFuture.completedFuture(getUrlForDate(date)).thenComposeAsync(this::readPage, executor).thenApply(this::getImageUrl).thenComposeAsync(this::readPage).thenAccept(this::process); 使用光纤代码更加清晰 exec.submit(() - { String page new String(readPage(getUrlForDate(date)));byte[] image readPage(getImageUrl(page));process(image); }); 当然每个对readPage的调用readPage块但是对于纤维我们不在乎。 尝试一下您关心的事情。 阅读大量的网页进行处理进行更多的阻塞读取并享受光纤阻塞便宜的事实。 结构化的一致性 Project Loom的最初动机是实现光纤但是今年早些时候该项目开始了针对结构化并发的实验性API。 在这篇强烈推荐的文章 从中拍摄以下图像中Nathaniel Smith提出了结构化的并发形式。 这是他的中心论点。 在新线程中启动任务实际上并不比使用GOTO编程好即有害 new Thread(runnable).start(); 当多个线程在没有协调的情况下运行时这将是意大利面条代码。 在1960年代结构化编程将goto替换为分支循环和函数 现在结构化并发的时机已经到来。 当启动并发任务时通过阅读程序文本我们应该知道它们何时完成。 这样我们可以控制任务使用的资源。 到2019年夏季Project Loom有了一个用于表达结构化并发的API。 不幸的是由于最近进行了统一线程和光纤API的实验该API目前处于混乱状态但是您可以通过http://jdk.java.net/loom/上的原型进行尝试。 在这里我们安排了许多任务 FiberScope scope FiberScope.open(); for (int i 0; i NTASKS; i) {scope.schedule(() - run(i)); } scope.close(); 调用scope.close()阻塞直到所有光纤完成。 请记住光纤阻塞不是问题。 一旦关闭示波器您就可以确定光纤已经完成。 FiberScope是可FiberScope的因此您可以使用try -with-resources语句 try (var scope FiberScope.open()) {... } 但是如果其中一项任务没有完成怎么办 您可以使用截止日期 Instant 或超时 Duration 创建范围 try (var scope FiberScope.open(Instant.now().plusSeconds(30))) {for (...)scope.schedule(...); } 截止期限/超时之前尚未完成的所有光纤都将被取消。 怎么样 继续阅读。 消除 取消一直是Java的痛苦。 按照惯例您可以通过中断线程来取消线程。 如果线程正在阻塞则阻塞操作以InterruptedException终止。 否则设置中断状态标志。 正确地进行检查是乏味的。 可以重置中断状态或者InterruptedException是已检查的异常这没有帮助。 java.util.concurrent中取消的处理一直不一致。 考虑ExecutorService.invokeAny 。 如果任何任务产生结果则其他任务将被取消。 但是CompletableFuture.anyOf允许所有任务运行完成即使其结果将被忽略。 2019年夏季的Project Loom API解决了取消问题。 在该版本中光纤具有cancel操作类似于interrupt 但是取消是不可撤销的。 如果当前光纤已被取消则静态Fiber.cancelled方法将返回true 。 当示波器超时时其光纤将被取消。 取消可以由FiberScope构造函数中的以下选项控制。 CANCEL_AT_CLOSE 关闭范围取消所有调度的光纤而不是阻塞 PROPAGATE_CANCEL 如果取消拥有光纤则任何新调度的光纤都会自动取消 IGNORE_CANCEL 无法取消预定的光纤 所有这些选项都未在顶层设置。 PROPAGATE_CANCEL和IGNORE_CANCEL选项是从父范围继承的。 如您所见有相当多的可调整性。 我们将不得不看到重新审视此问题时会发生什么。 对于结构化并发当示波器超时或被强制关闭时必须自动取消示波器中的所有光纤。 螺纹局部 让我感到惊讶的是Project Loom实现者的痛苦之一是ThreadLocal变量以及更深奥的东西-上下文类加载器AccessControlContext 。 我不知道有那么多东西骑在线程上。 如果您的数据结构不适合并发访问则有时可以在每个线程中使用一个实例。 经典示例是SimpleDateFormat 。 当然您可以继续构造新的格式化程序对象但这并不高效。 所以你想分享一个。 但是全球 public static final SimpleDateFormat dateFormat new SimpleDateFormat(yyyy-MM-dd); 将无法正常工作。 如果两个线程同时访问它则格式可能会混乱。 因此每个线程中有一个是有意义的 public static final ThreadLocalSimpleDateFormat dateFormat ThreadLocal.withInitial(() - new SimpleDateFormat(yyyy-MM-dd)); 要访问实际的格式化程序请致电 String dateStamp dateFormat.get().format(new Date()); 首次调用get时将调用构造函数中的lambda。 从那时起get方法返回属于当前线程的实例。 对于线程这是公认的做法。 但是当一百万个光纤存在时您真的想拥有一百万个实例吗 这对我来说不是问题因为使用线程安全的东西如java.time格式化程序似乎更容易。 但是Project Loom一直在考虑“范围本地”对象-那些FiberScope被重新激活了。 在线程与处理器数量一样多的情况下线程局部变量也已被用作处理器局部性的近似值。 可以实际模拟用户意图的API可以支持此功能。 项目状况 想要使用Project Loom的开发人员自然会沉迷于API如您所见该API尚未解决。 但是很多实施工作都处于幕后。 一个关键部分是在操作阻塞时使光纤停放。 已经完成了网络连接因此您可以在光纤内连接到网站数据库等。 当前不支持本地文件操作块时的停车。 实际上在JDK 11、12和13中已经重新实现了这些库这是对频繁发布实用程序的致敬。 目前尚不支持在监视器上进行阻塞 synchronized块和方法但最终需要这样做。 ReentrantLock现在可以了。 如果纤维以本机方法阻塞则将“固定”线程并且所有纤维都不会前进。 Project Loom对此无能为力。 Method.invoke需要更多工作才能得到支持。 有关调试和监视支持的工作正在进行中。 如前所述稳定性仍然是一个问题。 最重要的是性能还有一段路要走。 停放光纤不是免费的午餐。 每次都需要替换运行时堆栈的一部分。 在所有这些方面都取得了很大的进展所以让我们回顾一下开发人员关心的API。 现在是查看Project Loom并考虑如何使用它的好时机。 同一类代表线和纤维对您有价值吗 还是您希望将一些Thread行李搬走 您是否认同结构化并发的承诺 试一下Project Loom看看它如何与您的应用程序和框架一起工作并为无畏的开发团队提供反馈 翻译自: https://www.javacodegeeks.com/2019/12/project-loom.html织机原理

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

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

相关文章

网站空间登陆百度域名的ip

一 安全团队检测网站 1 检测到目标主机可能存在缓慢的HTTP拒绝服务攻击 缓慢的HTTP拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络,对目标Web服务器进行海量HTTP请求攻击,直到服务器带宽被打满,造成了拒绝服务。 慢…

dw里面怎么做网站轮播图合肥装修公司哪家口碑最好

题目描述 给一个包含 nn 个点,mm 条边的无向连通图。从顶点 11出发,往其余所有点分别走一次并返回。 往某一个点走时,选择总长度最短的路径走。若有多条长度最短的路径,则选择经过的顶点序列字典序最小的那条路径(如路…

最专业的网站建设组织蚌埠 网站制作

目录 一、调度约束二、Pod 启动典型创建过程三、K8S的调度过程3.1 Predicate(预选策略) 常见的算法使用3.2 常见优先级选项3.3 指定调度节点3.3.1 nodeName指定3.3.2 nodeSelector指定3.3.3 Pod亲和性与反亲和1.节点亲和硬策略示例2.节点亲和软策略示例3…

51网站空间相册seo在线培训

在医院门诊室,因为肠胃不适前来看病的林先生。问及他平时的养生之道,他笑谈,现在也正困惑着呢。 原来,最近他有两个朋友,在单位体检时分别被查出患有肾结石和胆囊炎,他本人最近也犯胃病。 最令人奇怪的一…

网站建设数据各种手艺培训班

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Icon这种Widget,本章回中将介绍 如何使用字体图标。闲话休提,让我们一起Talk Flutter吧。 概念介绍 本章回中介绍的字体图标是指Icon中使用特殊的字体来充当图标,字体图标可以看作…

建企业网站网站开发软件开发流程图

外键表单组件 若依框架提供了下拉框组件&#xff0c;但是数据是枚举数据中读取&#xff0c;但是对于外键表单没有提供。定义一个TableTag <template><div><template v-for"(item, index) in options" ><template ><spanv-if"value…

可信网站认证申请中华室内设计师网

目录 1. 概要设计 1.1 服务拆分与独立部署 1.1.1 精细化拆分 1.1.2 独立部署能力 1.2 接口设计与通信机制 1.2.1 标准化接口 1.2.2 轻量级通信 1.3 数据管理与一致性 1.3.1 分布式数据管理 1.3.2 数据分区与复制 1.4 负载均衡与集群化 1.4.1 负载均衡 1.4.2 集群化…

专业的单位网站开发深圳市设计师服务平台

一个人的职业选择和成长道路会受到很多因素的影响。贾尼尼&#xff0c;这位美国第三大银行——美洲银行的创始人&#xff0c;他的银行家之路却与父亲的死有关。 1878年的一天&#xff0c;贾尼尼8岁的时候&#xff0c;同村的一个葡萄农&#xff0c;因为还不起向贾尼尼父亲借的一…

网站的反爬一般怎样做调用wordpress的文章编辑器

MQTT协议草案5.0中文版 by hui6075 最新版本: v0.0.1 2018-05-18 (部分3.3.1版本内容翻译引用 mcxiaoke) 文档地址 中文翻译项目 概述 MQTT是一个客户端-服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范&#xff0c;易于实现。这些特点使…

长沙网站建设方面公司注册网站需要提供什么文件

项目中使用docker-compose&#xff0c;并通过以下方式设置了时区 environment:- SET_CONTAINER_TIMEZONEtrue- CONTAINER_TIMEZONEAsia/Shanghai 但是并没有正确生效&#xff0c;网上有很多博客都在推荐这个做法&#xff0c;另外一种是使用标准环境标量 -TZAsia/Shangehai …

网站建设是广告吗速成建站

MS1022 是一款高精度时间测量电路&#xff0c;内部集成了模拟比 较器、模拟开关、施密特触发器等器件&#xff0c;从而大大简化了外 围电路。同时内部增加了第一波检测功能&#xff0c;使抗干扰能力大 大提高。通过读取第一个回波脉冲的相对宽度&#xff0c;用户可以获 得接…

手机网站菜单设计模板模板网站可以优化吗

一、MySQL数据库表操作 MySQL表的基本概念 在windows中有个程序叫做excel. 而Excel文件中存在了如sheet1、sheet2、sheet3的表, 所有的sheet都存储在这个Excel文件中, 在某个sheet中有相应的数据. 回到数据库和表的关系上来说, 这个Excel文件就是一个数据库, 所有的sheet就是…

超酷个人网站欣赏阿里云怎样做公司网站

在k8s中部署高可用程序实践 1. 多副本部署1.1. 副本数量1.2. 更新策略1.3. 跨节点的统一副本分布1.4. 优先级1.5. 停止容器中的进程1.6. 预留资源 2. 探针2.1. 活性探针&#xff08;liveness probes&#xff09;2.2. 就绪探针&#xff08;Readiness probe&#xff09;2.3. 启动…

阿里云服务器建网站火鸟门户系统优点

植物再生领域重大突破 山农大团队发现植物“再生指挥官”REF1&#xff1a;中国科学院院士种康高度评价&#xff0c;认为这一发现对细胞分化与再生领域的基础科学研究和生物技术应用具有重大意义。 生物医药专业园区建设\n- 卫光生命科学园聚焦合成生物学、脑科学&#xff1a…

网站建设图片怎么动无锡网站建设系统

纵观当下宿主软件市场&#xff0c;正值百家争鸣、百花齐放之际像Mac系统的Logic Pro X、传统宿主软件代表Cubase、录音师必备Pro Tools、后起之秀Studio One等&#xff0c;都在各自的领域具有极高的好评度。而在众多宿主软件中&#xff0c;有这么一款历久弥新且长盛不衰的独特宿…

盘锦建设小学网站asp.net网站开发实例

&#x1f34e;作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;Linux系统网络编程 文章目录 一、协议初识和网络协议分层&#xff08;TCP/IP四层模型&#xff09;认识协议TCP/IP五层&#xff08;或四层&#xff09;模型 二、认识MAC地址和IP地址认识MAC地址认识IP地址认…

手机号注册网站鲜花网站建设项目策 划书

Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)紧接上篇文章&#xff0c;Oracle数据库架构已经创建完成&#xff0c;我的需求是&#xff1a;将老服务器上的数据库迁移到新的数据库上。这就用到impdp(导入)操作。要想实现对新数据库的impdp(导入)工作&#xff0c;首先需要…

头条权重查询站长工具网站建设公司发展方向及趋势

K8s 集群节点 CPU 使用率高&#xff01;内存溢出&#xff08;OOM&#xff09;&#xff01;宕机&#xff01;导致大量微服务瘫痪怎么办&#xff1f;可能是调度策略没做好&#xff0c;看完这篇文章掌握提高集群稳定性的管理诀窍。 Kubernetes&#xff08;K8s&#xff09;是一个开…

河北营销型网站方案手机网站制作系统

文章目录 1.前言2.环境准备3.程序实现4.sort拓展关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 1.前言 昨天一…

华硕路由器做网站手机版企页网站案例

Problem F: 动态规划进阶题目之滑雪 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 4 Solved: 3[Submit][Status][Web Board]Description Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xff0c;滑的区域必须向下倾斜&#xff0c;而且当…