怎么建设淘客自己的网站、前端开发培训费用

张小明 2026/1/19 22:06:23
怎么建设淘客自己的网站、,前端开发培训费用,庐山市星子网,专业网站运营池/线程池是什么 虽然创建销毁线程比创建销毁进程更轻量#xff0c;但是频繁创建销毁线程必然会导致效率的下降。 于是有了池这样的概念#xff0c;池的概念可以类比于备用物品/资源#xff0c;就像备胎一样#xff0c;需要他的时候就可以使用#xff0c;不需要的时候就是…池/线程池是什么虽然创建销毁线程比创建销毁进程更轻量但是频繁创建销毁线程必然会导致效率的下降。于是有了池这样的概念池的概念可以类比于备用物品/资源就像备胎一样需要他的时候就可以使用不需要的时候就是闲置状态。而线程池就是为了解决频繁创建销毁带来的低效率。如果某个线程不再使用了并不是真正把线程释放而是放到一个池里留着备用这样一来下次如果需要用到线程就直接从池子中取不必通过系统来创建了。标准库中的线程池在标准库中我们通过ExecutorService来创建一个线程池实例从ExecutorService进而延伸出两种创建线程池的方式。第一种通过Executors工厂类来创建出几种不同风格的线程池什么是工厂类这里我觉得有一个词“预制”很好来形容工厂类在编程中预制本质是提前封装资源、逻辑或组件减少重复开发提高效率。就像一个一套提前准备好的模版一样你需要的时候直接去套模版就可以提高效率Executors又可以延伸出创建线程池的几种方式分别是newFixedThreadPool创建固定线程数的线程池newCachedThreadPool创建线程数目动态增长的线程池newSingleThreadExecutor创建只包含单个线程的线程池newScheduledThreadPool设定 延迟时间后执行命令或者定期执行命令在创建好的实例中我们用submit方法来向线程池里添加要执行的内容/任务ExecutorServiceserviceExecutors.newFixedThreadPool(4);service.submit(newRunnable(){Overridepublicvoidrun(){}});ExecutorServiceservice2Executors.newCachedThreadPool();service2.submit(newRunnable(){Overridepublicvoidrun(){System.out.println(pool);}});ExecutorServiceservice3Executors.newSingleThreadExecutor();service3.submit(newRunnable(){Overridepublicvoidrun(){System.out.println(pool);}});ExecutorServiceservice4Executors.newScheduledThreadPool(4);service4.submit(newRunnable(){Overridepublicvoidrun(){System.out.println(pool);}});第二种创建ExecutorService实例的方式就是ThreadPoolExecutorThreadPoolExecutor 提供了更多的可选参数可以进一步细化线程池行为的进行定制。ThreadPoolExecutor的构造方法提供了很多参数这里我们重点来解析一下相关的参数我们拿参数最多的最后一个来说这里我们把创建一个线程池想象成开个公司. 每个员工相当于一个线程corePoolSize正式员工的数量(正式员工一旦录用永不辞退)maximumPoolSize正式员工 临时工的数目(临时工一段时间不干活就被辞退)keepAliveTime临时工允许的空闲时间unitkeepAliveTime的单位workQueue传递任务的阻塞队列Runnable的容器threadFactory: 创建线程的工厂参与具体的创建线程工作RejectedExecutionHandler⚠️四个重要的拒绝策略如果任务量超出公司的负荷了接下来怎么处理AbortPolicy()超过负荷直接抛出异常现有的任务和新的任务都不处理了CallerRunsPolicy()新添加进来的任务由添加任务的人/线程来处理不影响现有的任务DiscardOldestPolicy()丢弃所有任务中最老的任务将新的任务安排到最老的任务位置来处理DiscardPolicy()丢弃新来的任务维持现状不抛出异常不影响现有的任务模拟实现这里模拟实现就以newFixedThreadPool这样固定大小的线程池来举例前面使用ExecutorService的实例的时候执行完任务之后没有立马终止线程所以这里应该使用阻塞队列来放任务publicclassMyThreadPool{privatefinalBlockingQueueRunnablequeuenewArrayBlockingQueue(100);publicMyThreadPool(intn){for(inti0;in;i){ThreadtnewThread(()-{while(true){try{Runnablerunnablequeue.take();runnable.run();}catch(InterruptedExceptione){thrownewRuntimeException(e);}}});t.start();}}publicvoidsubmit(Runnablerunnable)throwsInterruptedException{queue.put(runnable);}}这里我们写一个简单的循环来模拟线程池处理任务的效果classMain{publicstaticvoidmain(String[]args)throwsInterruptedException{MyThreadPoolmyThreadPoolnewMyThreadPool(3);for(inti0;i1000;i){intni;myThreadPool.submit(newRunnable(){Overridepublicvoidrun(){System.out.println(执行任务n 当前线程为Thread.currentThread().getName());}});}}}效果和前面标准库里的newFixedThreadPool一样
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

甜蜜高端定制网站关于网站建设的请示

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Nginx Proxy Manager批量管理工具,支持通过CSV文件批量导入/导出代理配置,提供REST API接口供CI/CD流水线调用,实现配置的版本控制和自动…

张小明 2026/1/8 3:19:05 网站建设

门户网站建设定制网页设计与制作教材电子版

还在为百度网盘几十KB/s的蜗牛速度而烦恼吗?macOS百度网盘插件为你带来更好的下载体验,让大文件下载变得轻松愉快!🚀 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https:/…

张小明 2025/12/25 9:10:05 网站建设

广州地铁最新天津网站建设优化企业

Django REST Framework深度解析:5大核心模块构建企业级API架构 【免费下载链接】django-rest-framework encode/django-rest-framework: Django REST framework 是一个强大的 Web API 开发工具包,专为 Django 框架设计,提供了一套丰富的功能集…

张小明 2026/1/5 19:52:32 网站建设

房地产网站开发文档短视频制作app

从零搭建搜索系统:Spring Boot 集成 Elasticsearch 实战指南 你有没有遇到过这样的场景?用户在电商网站上输入“苹果手机”,结果搜出来的却是水果摊的“红富士苹果”;或者后台日志堆积如山,排查一个错误要翻几十页文本…

张小明 2026/1/9 6:19:55 网站建设

石家庄建设一个网站多少钱网站内链优化策略

第一章:农业IoT项目失败的根源剖析在农业物联网(IoT)项目实施过程中,大量投入未能转化为实际生产力,其根本原因往往隐藏在技术选型、系统集成与现场环境适配等多个层面。忽视农业场景的特殊性,盲目套用工业…

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