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

网站设计类论文怎么做天水建设网站

网站设计类论文怎么做,天水建设网站,优定软件网站建设,临沂网站建设咨询多线程爬虫是一种同时运行多个线程来提高爬取速度的爬虫方式。通过将大量的工作分配给不同的线程#xff0c;可以减少爬虫的运行时间#xff0c;提高效率。不过需要注意的是#xff0c;在爬取过程中需要合理的管理线程数#xff0c;以避免对被爬取的网站造成过大的负荷。 …多线程爬虫是一种同时运行多个线程来提高爬取速度的爬虫方式。通过将大量的工作分配给不同的线程可以减少爬虫的运行时间提高效率。不过需要注意的是在爬取过程中需要合理的管理线程数以避免对被爬取的网站造成过大的负荷。 一、线程基础 1、继承Thread方式的线程 当需要再此启动一个线程时需要再创建对象不能重复使用。 2、推荐的创建线程方式继承Runnalbe使用Thread类 1.5之前就这两种 callable 第三种 可以有返回值 call() 可以抛出异常 支持泛型返回值 需要借助FutureTask 如获取返回值的时候 class MyThread implements Callable{public Object call() throws Exception{....return null;} }MyThread thread new MyThread(); FutureTask f new FutureTask(thread); new Thread(f).start(); new Thread(f).start(); // 反复执行不会执行需要定义新的task try{Object ret f.get();// get()为返回值,会阻塞主线程执行 }catch(InterruptedException){}catch(Execution e){}线程池 第四种方式 提高速度降低资源消耗 便于线程管理核心池大小最大线程数没任务多长时间终止 //Executors 工具类 //ExecutorService 接口 ExecutorService service Executors.newFixedThreadPool(10); ThreadPoolExecutor executor (ThreadPoolExecutor)service; executor.setxxx() //设置参数 service.execute(Runnable); service.submit(Callable); service.shutdown();b 4、线程分类 守护线程用户线程 守护线程服务用户线程 thread.setDaemon(true) //设置为守护线程 最简单程序main主线程与gc回收线程 若没有用户线程jvm则结束 5、线程生命周期 NEW : 创建对象 RUNNABLE 运行 start BLOCKED阻塞 sleepjoin等待同步锁waitsuspend:过时方法 WAITINGwait() TIMED-WAITINGwait(time) TERMINATEDstopexceptionrun结束 阻塞—》就绪sleepjoin结束获取同步锁notifyresume过时方法 6、注意 wait阻塞会释放锁必须在synchronized内 sleep阻塞不会释放锁任何时候可以 wait,notify,notifyall,必须在同步方法快内方法内不能使用lock他们调用时是锁对象.wait要注意 此时syn(锁对象)两个所对象必须相同 二、线程同步 sync 与wait搭配notify搭配若与Lock搭配会造成异常 多用while不用if 同步代码块synchronized 自动锁 要求所有相乘同一把锁 synchronized(obj) obj是同一个对象或同一个类 同步方法当方法内容全部需要同步时 非静态方法锁即时this 需要注意 静态方法时锁时当前类本身 Lock 接口 1.5之后 condition 能够手动开启同步结束同步手动锁指定睡眠指定唤醒 实现类 ReentrantLock功能与synchronized可重入锁 ReentrantReadWriteLock.ReadLock有读锁的线程可以共享该方法几乎相当于没加锁 ReentrantReadWriteLock.WriteLock其他线程不共享该方法 ReentrantLock lock new ReentrantLock(); final Condition flag1lock.newCondition(); final Condition flag2lock.newCondition(); try{lock.lock();flag1.await();... }finally{lock.unlock(); } flag2.singal();三、线程通信 定制化通信 /* 例 * 切菜 * 炒菜 * 上菜 * 同时10道菜 */ // 这里就不能用sync需要定制化通信唤醒睡眠的线程 // 顺序线程 操作 资源类 CookingLockcondation flag1flag2flag3cut()cooking()gaving() Cookingnew thread(()-{for(int i0;i5;i)cooking.cut();}).start()new thread(()-{for(int i0;i5;i)cooking.cooking();}).start()new thread(()-{for(int i0;i5;i)cooking.giving();}).start()lambda表达式 接口可写静态方法实现 普通方法实现加default 关键字即可 四、JUC工具类 数据库中读写一般不是同步的 JUC中读写都是同步的即读写同步因为JVM线程必须加锁否则不安全比数据库严格 ReentraReadWriteLock读写锁写程序优先 CountDownLatch计数器 CountDown count new CountDown(10); count.await(); // 到此方法时会判断count里面的数值为0时继续主线程适用于秒杀业务CyclicBarrier循环栅栏多个线程处于同一状态时才继续CyclicBarrier任务。 CyclicBarrier cyc new CyclicBarrier(7,任务)for (int i0;i7;i)new Thread(){()-{xxxxxcyc.await(); }}Semaphere信号灯 Sempahere s new Semaphere(3);for (int i0;i7;i)new Thread(){()-{s.acquire();// 资源不够时会阻塞xxxxs.release();// 表示释放了资源}}
http://www.w-s-a.com/news/275616/

相关文章:

  • 甘肃张掖网站建设网站开发软件是什么专业
  • 海口省建设厅网站网站数据库怎么做同步
  • 做网站建设月收入多少app开发公司广州英诺
  • 新闻播报最新网站优化外包费用
  • wordpress分页出现404最专业的seo公司
  • 连云港网站建设电话连云港市建设局网站
  • 平面设计网站有哪些比较好drupal网站建设 北京
  • 健康资讯网站模板网页价格表
  • 2008发布asp网站宝安建网站的公司
  • 郑州市城市建设管理局网站制作公司网站 优帮云
  • 网站开发 瀑布结构普陀网站建设
  • 12380网站建设情况汇报plone vs wordpress
  • c 网站开发数据库连接与wordpress类似的都有哪些
  • 状元村建设官方网站长春做网站seo的
  • 做金融资讯网站需要哪些牌照海珠营销型网站制作
  • 学做网站需要买什么书手机网络
  • 寻找做电影网站团队合作西宁网站建设君博首选
  • 兴仁县城乡建设局网站爱站关键词查询
  • 漳州网站建设公司推荐wordpress更改主机
  • c2c商城网站建设方案英文网站注册
  • 电子商务网站的运营一般需要做哪些准备宣传片拍摄思路
  • 网站建设网页制作百度怎么做自己网站
  • 建设设计网站公司巴州建设局网站
  • 淘宝建设网站的好处韶关市网站建设招标
  • 佛山高端网站免费招聘网站建设
  • 申请网站就是做网站吗wordpress tag 优化
  • 建站系统排行榜菏泽机关建设网站
  • 网站群建设费用科技通信网站模板下载
  • 网站开发的流程是怎样的自己做自媒体在哪个网站比较好
  • 网站的html代码在哪网页线上开发制作