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

兴义网站建设网站建设百度怎么做公司的网站

兴义网站建设网站建设,百度怎么做公司的网站,网页历史记录保存天数,谷歌搜索关键字网站Callable接口 Callable是一个interface,相当于给线程封装了一个返回值,方便程序猿借助多线程的方式计算结果. 代码示例: 使用 Callable 版本,创建线程计算 1 2 3 ... 1000, 1. 创建一个匿名内部类, 实现 Callable 接口. Callable 带有泛型参数. 泛型参数表示返回值的类型…Callable接口 Callable是一个interface,相当于给线程封装了一个返回值,方便程序猿借助多线程的方式计算结果. 代码示例: 使用 Callable 版本,创建线程计算 1 2 3 ... 1000, 1. 创建一个匿名内部类, 实现 Callable 接口. Callable 带有泛型参数. 泛型参数表示返回值的类型. 2. 重写 Callable 的 call 方法, 完成累加的过程. 直接通过返回值返回计算结果. 3. 把 callable 实例使用 FutureTask 包装一下. 4. 创建线程, 线程的构造方法传入 FutureTask . 此时新线程就会执行 FutureTask 内部的 Callable 的 call 方法, 完成计算. 计算结果就放到了 FutureTask 对象中.   在上面代码中,get()方法会抛出异常. 理解Callable Callable 和 Runnable 相对 , 都是描述一个 任务 . Callable 描述的是带有返回值的任务 , Runnable 描述的是不带返回值的任务 . Callable 通常需要搭配 FutureTask 来使用 . FutureTask 用来保存 Callable 的返回结果 . 因为Callable 往往是在另一个线程中执行的 , 啥时候执行完并不确定 . FutureTask 就可以负责这个等待结果出来的工作 . ReentrantLock类 可重入互斥锁 . 和 synchronized 定位类似 , 都是用来实现互斥效果 , 保证线程安全 . ReentrantLock的用法 ​​​​​​​ ReentrantLock和Synchronized的区别 1. Synchronized是非公平锁,ReentrantLock默认是非公平锁,但可以通过一个构造方法传入true开启公平锁模式 2. Synchronized不需要手动释放锁,而ReentrantLock需要手动释放锁. 3. Synchronized提供的加锁操作就是 死等.只要获取不到锁,就会一直阻塞等待.而ReentrantLock提供了更灵活的等待方式. 4. ReentrantLock提供了更强大,更方便的的等待通知机制. Synchronized搭配的是wait notify,notify的时候是随机唤醒一个等待线程,而ReentrantLock搭配的是Condition类,进行唤醒的时候可以唤醒指定线程.  5. ReentrantLock t通常搭配 try catch 使用. 信号量 Semaphore 信号量, 用来表示 可用资源的个数. 本质上就是一个计数器. 理解信号量 可以把信号量想象成是停车场的展示牌: 当前有车位 100 个. 表示有 100 个可用资源.         当有车开进去的时候, 就相当于申请一个可用资源, 可用车位就 -1 (这个称为信号量的 P 操作)         当有车开出来的时候, 就相当于释放一个可用资源, 可用车位就 1 (这个称为信号量的 V 操作)         如果计数器的值已经为 0 了, 还尝试申请资源, 就会阻塞等待, 直到有其他线程释放资源. Semaphore 的 PV 操作中的加减计数器操作都是原子的 , 可以在多线程环境下直接使用 . CountDownLatch CountDownLatch的主要任务是等待N个任务执行结束 1. 构造CountDownLatch实例,初始化10代表有10个任务要完成. ​​​​​​​ 2.每执行完一个任务,都会调用 count.countDown()方法,每调用一次, CountDownLatch内部的计数器就会减1. 3. 当主线程中使用 latch.await(); 阻塞等待所有任务执行完毕. 相当于计数器为 0 了. 多线程使用哈希表 在之前数据结构学习了哈希表,其中HashMap是线程不安全的,HashTable是线程安全的, 而这里主要讲的是ConcurrentHashMap,是一种更优化的线程安全哈希表. ​​​​​​​ Synchronized加锁是多个线程针对同一个对象加锁,就会产生锁竞争,一个HashTable只有一把锁,此时两个线程在访问哈希表中的任意元素的时候都会发生锁竞争. 1. ConcurrentHashMap任然是用synchronized进行加锁,但不是整个锁对象,而是链表的头节点作为所对象,大大降低了锁冲突的概率 2. ConcurrentHashMap针对读操作不加锁,但使用volatile保证从内存读取元素时原子的,而只针对写操作进行加锁. 3. ConcurrentHashMap内部充分利用了CAS,进一步削减加锁操作的数目. 4. 针对扩容采取了化整为零的方式. HashTable/HashMap扩容:创建一个更大的数组,把旧的数组上的链表上的每个元素都搬入到新的数组,相当于删除原来数组在重新插入到新的数组上.这个扩容会在某次put时进行出发,当数据太多,就会导致这种扩容会比较耗时 ConcurrentHashMap中,扩容的方式是每次搬运一小部分元素,创建新的数组,旧的数组保留,每次put操作,都忘新数组上添加,同时进行一部分搬运,每次get的时候,旧的数组和新的数组都查询,每次remove只要找到元素删除即可.经过一定时间,所有的元素都搬运完了,最终在释放旧数组.
http://www.zqtcl.cn/news/28894/

相关文章:

  • 企业网站建设平台的功能怎样做网络推广为什么要做网络推广
  • 石家庄网站开发公司电话建设网站公司兴田德润在哪儿
  • 网站打开慢是什么原因合肥地区网站制作
  • 无锡网站优化排名推广知名网站建设推广
  • 网站后台的网址忘记了门店推广是什么意思
  • 珠海找工作哪个网站好重庆首页工程设计咨询有限责任公司
  • 什么是交互式网站开发中国建设信息化期刊官网
  • 制作网站电话网站推广公司排名点击查看
  • 网站产品使用说明书怎么做建设银行信用卡被钓鱼网站骗了15000
  • 买高端品牌网站建设wap微信网站模板
  • 支付宝网站设计分析中兴通讯的网站建设分析
  • 怎样建设个人手机网站wordpress标题设置
  • 上海企业免费建站深圳搜索优化排名
  • 慈溪企业网站建设帕绍网站建设
  • 如何做网站好看wordpress移动新闻
  • 网站如何能让百度收录网站建设柒首先金手指8
  • 网站备案信息管理wordpress 影视源码
  • wordpress 正计时seo的基本步骤包括哪些
  • 酒店加盟什么网站建设做直播网站有市场吗
  • 简述php网站开发流程图美容网站建设
  • 云南建设厅网站安全员报名入口网站设计行业背景
  • 东莞网站制作品牌祥奔科技网页设计作品及源码
  • 网站建设需求信息网页鉴赏
  • 洪山网站建设公司系部网站开发计划
  • 榆林网站建设网站备案取消
  • 做网站哪个便宜无法解析服务器域名
  • 泰达建设集团网站wordpress从入门到精通pdf
  • 成都分销网站建设内蒙古建设厅网站删除
  • 什么软件网站好重庆网站建公司大全
  • 学做网站论坛会员怎么样厦门创意互动网站建设