当前位置: 首页 > news >正文

如何把网站推广出去获取页面内容wordpress

如何把网站推广出去,获取页面内容wordpress,百度站长工具使用方法,安徽区块链虚拟币网站开发方案今天去面试的时候#xff0c;遇到一个问题。我三个任务#xff0c;ABC#xff0c;我怎么让A执行完执行B#xff0c;B执行完执行C 3个并行线程#xff0c;如何解决。程池的核心运行原理和参数。 1.线程池核心的参数 1.线程核心数- 线程池中始终保持的活动线程数量。 2.最…今天去面试的时候遇到一个问题。我三个任务ABC我怎么让A执行完执行BB执行完执行C 3个并行线程如何解决。程池的核心运行原理和参数。 1.线程池核心的参数 1.线程核心数- 线程池中始终保持的活动线程数量。 2.最大线程数- 线程池能够容纳的最大线程数量。 3.等待队列- 用于存储等待执行的任务的队列。 4.线程存活时间- 没有任务额外的线程会保持活动状态的时间。 5.时间单位-可以是毫秒秒。 6.线程工厂- 创建一个线程工厂。 7.拒绝策略- 线程池的任务队列已满新任务的处理方式。 举个列子: private static ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(10, 10,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue(),new ThreadFactoryBuilder().setThreadFactory(new DefaultThreadFactory(task-inspection)).setUncaughtExceptionHandler((t, e) - log.error({}, t, e)).build()); 2.线程池的运行原理 想象你是一家快餐店的老板你的店里经常有顾客需要服务。你有一些员工每个员工可以为顾客制作食物。但是你不可能每次有顾客来的时候都去雇佣新员工因为雇佣和解雇都需要花费时间和金钱。 于是你决定采用一种聪明的方式来管理员工你雇佣了一组员工让他们一直待在店里准备着做食物的工作。当有顾客来了你只需要把订单交给员工他们就会按照订单制作食物。这样你节省了雇佣和解雇的麻烦员工也可以充分利用自己的时间不必一直等着顾客。 线程池就像是这家快餐店的员工组合。线程池会事先创建一些线程就像员工待在店里准备做工作。当有任务需要执行时就把任务交给线程池就像把订单交给员工。线程池的线程会按顺序执行任务然后再继续执行下一个任务就像员工按照订单制作食物。 线程池的运行原理可以分为以下几个步骤 线程池的创建在程序初始化或需要使用线程池时创建一个线程池对象。这个线程池对象会根据配置参数来初始化一定数量的线程以及一个任务队列用于存放待执行的任务。任务提交当有任务需要执行时应用程序通过将任务对象提交给线程池。这些任务会被放入任务队列中等待线程池中的空闲线程来执行。线程池的管理线程池会根据配置的核心线程数和最大线程数来管理线程的数量。如果任务数量小于核心线程数线程池会创建新线程来执行任务。如果任务数量大于核心线程数但小于最大线程数线程池会将任务放入任务队列中等待执行而不会创建新线程。如果任务数量超过最大线程数线程池会根据拒绝策略来处理任务例如丢弃任务或抛出异常。任务执行线程池中的线程会从任务队列中取出任务并执行。线程池会不断地从任务队列中取任务确保所有任务都得到执行。执行完任务后线程会继续从队列中取下一个任务。线程回收在任务执行完毕后线程池会根据一定的策略来决定是否回收线程。如果线程池的活动线程数量超过核心线程数空闲的线程会在一定时间内保持活动状态以备下次任务使用。如果空闲时间超过一定阈值额外的线程可能会被终止以节省资源。 3.如何解决这样的问题我考虑使用 CountDownLatch 1、为什么我会使用 CountDownLatch 在上一家公司实际开发过程当中就遇到过并行的问题。那个时候是要多个任务都执行但是并没有去保证他的一个执行的顺序。于是我们就使用到了CountDownLatch 使用计数器去判断这些所有的业务逻辑是否都执行完毕从而进行下一步操作。 部分的代码代码如下 private static ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(10, 10,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue(),new ThreadFactoryBuilder().setThreadFactory(new DefaultThreadFactory(task-inspection)).setUncaughtExceptionHandler((t, e) - log.error({}, t, e)).build()); OverrideTransactional(rollbackFor Exception.class)public void asyncInitiatingInspection(InspectionRecordsBO bo) {CountDownLatch countDownLatch new CountDownLatch(inspectionBaseServiceList.size());inspectionBaseServiceList.forEach(inspectionBaseService - {threadPoolExecutor.execute(() - {try {MDCUtil.putMDCKey(IdGenUtils.generateRequestId());inspectionBaseService.addInspection(bo);} catch (Exception e) {log.error(发起巡检信息失败类:{},发起巡检信息失败:{}, inspectionBaseService.getClass().getName(), e);} finally {countDownLatch.countDown();MDCUtil.removeMDCKey();}});});try {// 等待所有线程执行完毕countDownLatch.await();} catch (InterruptedException e) {log.error(线程计数器失败 e);Thread.currentThread().interrupt();}// 判断是否所有巡检已完this.updateInspectionResult(bo);}2、什么是 CountDownLatch CountDownLatch 是 Java 标准库中的一个同步工具用于在多个线程之间进行协调和控制。它可以帮助一个或多个线程等待其他线程完成一组操作然后再继续执行。 你可以将 CountDownLatch 想象成一个倒计时计数器可以设置一个初始计数值然后多个线程可以等待这个计数器减为零之后再继续执行。 主要的操作方法有两个 await() 方法调用这个方法的线程会被阻塞直到计数器减到零。其他线程完成一定操作后调用 countDown() 方法来减小计数器的值。当计数器变为零时被阻塞的线程会继续执行。countDown() 方法这个方法用于减小计数器的值。当一个线程完成了一个操作可以调用这个方法来减小计数器的值。 CountDownLatch 在多线程编程中常常用于实现“等待所有线程完成某个任务后再继续”的场景。例如在主线程中等待多个子线程都完成某些操作后再进行下一步操作。 3.解决方案 package com.aq.test;import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class TestCountDownLatch {public static void main(String[] args) {CountDownLatch latch1 new CountDownLatch(0);CountDownLatch latch2 new CountDownLatch(1);CountDownLatch latch3 new CountDownLatch(1);ExecutorService executor Executors.newFixedThreadPool(3);executor.submit(() - {try {latch1.await();System.out.println(线程A执行完毕);// todo 业务逻辑} catch (InterruptedException e) {Thread.currentThread().interrupt();} finally {latch2.countDown();}});executor.submit(() - {try {latch2.await();System.out.println(线程B执行完毕);// todo 业务逻辑} catch (InterruptedException e) {Thread.currentThread().interrupt();} finally {latch3.countDown();}});executor.submit(() - {try {latch3.await();System.out.println(线程C执行完毕);// todo 业务逻辑} catch (InterruptedException e) {Thread.currentThread().interrupt();}});latch1.countDown();executor.shutdown();} } 我们使用了三个 CountDownLatch分别用于控制三个线程的执行顺序。每个线程在执行之前都会通过 await 方法等待前一个线程的 CountDownLatch 计数减为0然后执行自己的任务。 通过适时的 countDown 调用我们确保了线程的顺序执行。在这个例子中线程A会先执行然后是线程B最后是线程C。 总结通过自己的理解和在网上寻找答案。以上就是我对于这几个问题的解决方案和解决思路。
http://www.w-s-a.com/news/415961/

相关文章:

  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司
  • 龙岩网站设计招聘信息网上免费logo设计
  • 高端定制网站开发建站教程详解网站共享备案可以申请支付接口
  • 做房产网站接不到电话企业推广宣传方式
  • 网站建设费用不用摊销下一页p30
  • 北京 工业网站建设公司国外服务器公司有哪些
  • 怎样局域网站建设盈利网站
  • 公司做网站广告语济南建网站价格消费品展
  • 建德网站网站建设规划设计书
  • 谷歌网站流量分析wordpress置顶浮标
  • 江苏新宁建设集团网站网络规划设计师2023论文