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

关于当当网站建设方案乐清网论坛

关于当当网站建设方案,乐清网论坛,网站建设 解决方案,网站怎么优化搜索线程池就是一个可以复用线程的技术。前面三种多线程方法就是在用户发起一个线程请求就创建一个新线程来处理#xff0c;下次新任务来了又要创建新线程#xff0c;而创建新线程的开销是很大的#xff0c;这样会严重影响系统的性能。线程池就相当于预先创建好几个线程#xf…线程池就是一个可以复用线程的技术。前面三种多线程方法就是在用户发起一个线程请求就创建一个新线程来处理下次新任务来了又要创建新线程而创建新线程的开销是很大的这样会严重影响系统的性能。线程池就相当于预先创建好几个线程招聘几个打工人来分配之后要处理的任务干活。线程池的接口ExecutorService线程池对象使用ExecutorService的实现类ThreadPoolExecutor自创建一个线程池对象可以看到有7个参数通过这些参数设置线程池的规模和特征。ExecutorService的常用方法有execute、submit、shutdown、shutdownNow。ThreadPoolExecutor构造器的参数:1指定线程池的线程数量核心线程 corePoolSize2指定线程池可支持的最大线程数 maximumPoolSize3指定临时线程的最大存活时间 keepAliveTime4指定存活时间的单位(秒、分、时、天) unit5指定任务队列 workQueue6指定用哪个线程工厂创建线程 threadFactory7指定线程忙任务满的时候新任务来了怎么办 handler默认丢弃任务并抛出RejectedExecutionException异常。ThreadPoolExecutor创建线程池对象ExecutorService poolnew ThreadPoolExecutor(3,6,8, TimeUnit.SECONDS,new ArrayBlockingQueue(6), Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());线程池处理Runnable任务 ——pool.execute()首先实现Runnable接口重写run方法。然后创建MyRunnable任务对象只不过这里不是把MyRunnable任务对象交给Thread处理而是使用线程池pool的execute()方法。class myRunnable implements Runnable{Overridepublic void run() {for (int i 0; i 5; i) {System.out.println(Thread.currentThread().getName() —— i);}try {System.out.println(Thread.currentThread().getName() —— 休眠);Thread.sleep(2000);System.out.println(Thread.currentThread().getName() —— 启动);} catch (InterruptedException e) {e.printStackTrace();}} } //Runnable targetnew myRunnable();pool.execute(target);线程池处理Callable任务 ——pool.submit()定义类实现Callable接口重写call方法封装要做的事情。然后把Callable对象进行submit()并且可以返回执行后的结果。class myCallable implements CallableString {private int n;public myCallable(int n) {this.n n;}Overridepublic String call() throws Exception {int s0;for (int i 0; i n; i) {sn;}return Thread.currentThread().getName() 1... n , 子线程执行结果 s;} } //Callable myCallablenew myCallable(10);FutureString f1 pool.submit(myCallable);System.out.println(f1.get());使用Executors线程池的工具类调用方法返回不同特点的线程池对象Executors的底层其实也是基于线程池的实现类ThreadPoolExecutor创建线程池对象的。Executors得到线程池对象的常用方法方法说明弊端public static ExecutorService newCachedThreadPool()线程数量随着任务增加而增加如果线程任务执行完毕且空闲了一段时间则会被回收掉。允许创建的线程数量最大上限是Integer.MAX_VALUE非常非常大可能会创建大量线程出现OOM错误 内存溢出 java.lang.OutOfMemoryError public static ExecutorService newFixedThreadPool(int nThreads)创建固定线程数量的线程池如果某个线程因为执行异常而结束那么线程池会补充一个新线程替代它。允许请求的任务队列长度是Integer.MAX_VALUE可能会堆积大量请求出现OOM错误public static ExecutorService newSingleThreadExecutor ()创建只有一个线程的线程池对象如果该线程出现异常而结束那么线程池会补充一个新线程。允许请求的任务队列长度是Integer.MAX_VALUE可能会堆积大量请求出现OOM错误public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)创建一个线程池可以实现在给定的延迟后运行任务或者定期执行任务。 允许创建的线程数量最大上限是Integer.MAX_VALUE可能会创建大量线程出现OOM错误Executors不适合做大型互联网场景的线程池方案建议使用ThreadPoolExecutor来指定线程池参数这样可以明确线程池的运行规则规避资源耗尽的风险。定时器定时器是一种控制任务延时调用或者周期调用的技术。定时器的实现方式有两种方式一Timer。创建Timer定时器对象然后开启定时器。这是一种单线程方法处理多个任务按照顺序执行存在延时与设置定时器的时间有出入。可能因为其中的某个任务的异常使Timer线程死掉从而影响后续任务执行。    Timer tnew Timer();t.schedule(new TimerTask() {Overridepublic void run() {System.out.println(定时器~);}},3000,3000);方式二 ScheduledExecutorService定时器。基于线程池某个任务的执行情况不会影响其他定时任务的执行。先得到线程池对象然后再进行周期调度方法。 ScheduledExecutorService poolExecutors.newScheduledThreadPool(3);pool.scheduleAtFixedRate(new TimerTask() {Overridepublic void run() {System.out.println(定时器);}},3,3,TimeUnit.SECONDS);并发与并行CPU同时可以处理线程的数量有限所以CPU会轮询为每个线程服务只是由于CPU切换的速度很快给我们的感觉这些线程在同时执行其实可能只是并发。所以说多个线程其实是并发与并行同时进行的。线程的6种状态NEW(新建)线程刚被创建但是并未启动。Runnable(可运行)线程已经调用了start()等待CPU调度。Blocked(锁阻塞)线程在执行的时候未竞争到锁对象则该线程进入Blocked状态。Waiting(无限等待)一个线程进入Waiting状态另一个线程调用notify或者notifyAll方法才能够唤醒。Timed Waiting(计时等待)同waiting状态有几个方法有超时参数调用他们将进入Timed Waiting状态。带有超时参数的常用方法有Thread.sleep 、Object.wait。Teminated(被终止)因为run方法正常退出而死亡或者因为没有捕获的异常终止了run方法而死亡。
http://www.hkea.cn/news/14368585/

相关文章:

  • 江苏省国家示范校建设专题网站redis wordpress 内存
  • 寺庙建设网站的意义小店网站制作
  • 一站式网站建设有哪些网剧推广一次5元
  • 教学设计代做去什么网站世界500强企业排名
  • 成都建网站公司电话北大青鸟计算机培训学费
  • 企业网站建设推广实训报告浙江省建设工程招投标网站
  • 如何在阿里巴巴上建设公司网站网站的统计代码是什么意思
  • 做影视网站犯法吗360推广平台登录入口
  • 搞定在线图片编辑seo为什么不景气了
  • 加强网站建设的意义大学生做家教网站
  • 可以做业务推广的网站有哪些内容网页设计如何添加视频
  • 黄石网站建设价格吉林市百姓网免费发布信息网
  • 海淀手机网站设计公司嘉定品牌网站建设
  • 建一个网站大概需要多少钱千锋教育广州校区
  • 做一个网站需要多少人途牛网站建设功能需求分析
  • 网站建设 珠海营销型网站建设服务商
  • 男女做那事是什 网站网站建设多少费用
  • 长安城乡建设开发有限公司网站京东自营商城官网
  • 西宁中小企业网站建设柞水县住房和城乡建设局网站
  • 南头专业英文网站建设公司网页界面设计的内容五大设计要素
  • 波音网站开发官方网站下载打印机驱动
  • 网上医疗和医院网站建设百度seo排名优化公司推荐
  • 中高端网站设计排名怎么做商城网站
  • 网站设计哪家最好wordpress商店团购主题
  • 做网站需要什么费用我要创业找项目
  • 自己建设网站在哪里建设网站设计外包协议
  • 安徽建设银行网站信用信息查询公示系统
  • 猪八戒网可以做福彩网站吗国内免费plm
  • 哪些网站做外贸效果好做淘宝详情的网站
  • 打折网站运营思路网站建设定制开发推广