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

网站前端制作费用wordpress金融

网站前端制作费用,wordpress金融,网站页面设计网页说明,网站seo分析工具文章目录 1. Callable 接口2. ReentrantLock3. 信号量4. CountDownLatch JUC这里就是指#xff08;java.util.concurrent#xff09; concurrent 就是并发的意思 这个包里的内容#xff0c;主要就是一些多线程相关的组件 1. Callable 接口 Callable 也是一种创建线程的方式… 文章目录 1. Callable 接口2. ReentrantLock3. 信号量4. CountDownLatch JUC这里就是指java.util.concurrent concurrent 就是并发的意思 这个包里的内容主要就是一些多线程相关的组件 1. Callable 接口 Callable 也是一种创建线程的方式 适合与想让某个线程执行一个逻辑并且返回结果的时候 相比之下Runnable 不关注结果 这个和Runnable 方法很像 call 方法是 Callable 中的核心方法 返回值就是 Integer期望值这个线程能够返回一个整数 import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask;public class ThreadDemo35 {public static void main(String[] args) throws ExecutionException, InterruptedException {//定义了任务CallableInteger callable new CallableInteger() {Overridepublic Integer call() throws Exception {int sum 0;for (int i 0; i 1000; i) {sum i;}return sum;}};//把任务放到线程中进行执行FutureTaskInteger futureTask new FutureTask(callable);Thread t new Thread(futureTask);t.start();//此处的 get 就能获取到 callable 里面的返回结果//由于线程是并发执行的执行到主线的 get 的时候t 线程可能还没执行完//没执行完的话get 就会阻塞System.out.println(futureTask.get());} } futureTask 在这里就是相当于让一个线程跑起来我们来等待结果 就相当于去吃饭扫码点单后会给你一个小票可以凭小票取餐 点餐完成后后厨就相当于一个线程就开始执行了 这个过程中我们需要等出餐 等餐好了就可以那小票取餐 这个时候 futureTask 就相当于拿着小票换执行结果 这个时候我们创建线程的方式有增加了一种 线程创建的方式 继承 Thread重写 run创建单独的类也可以匿名内部类实现 Runnable重写 run创建单独的类也可以匿名内部类实现 Callable重写 call创建单独的类也可以匿名内部类使用 lambda 表达式ThreadFactory 线程工厂线程池 2. ReentrantLock 可重⼊互斥锁和 synchronized 定位类似都是⽤来实现互斥效果保证线程安全 ReentrantLock 的⽤法 • lock()加锁如果获取不到锁就死等 • trylock(超时时间)加锁如果获取不到锁等待⼀定的时间之后就放弃加锁 • unlock()解锁 ReentrantLock lock new ReentrantLock(); ----------------------------------------- lock.lock(); try {// working } finally {lock.unlock() }ReentrantLock 的优势 ReentrantLock 在加锁的时候有两种方式 locktryLock给了更多的可操作空间ReentrantLock 提供了公平锁的实现默认情况下是非公平锁ReentrantLock 提供了更强大的等待通知机制 搭配了Condition 类实现等待通知可以更精确控制唤醒某个指定的线程 虽然 ReentrantLock 有上述优势但是在加锁的时候首选还是 synchronized 但是很明显ReentrantLock 使用更复杂尤其容易忘记解锁 3. 信号量 信号量也是操作系统中比较重要的概念 信号量就是一个计数器描述了“可用资源”的个数 举个栗子 可以把信号量想象成是停⻋场的展⽰牌 当前有⻋位 100 个表⽰有 100 个可⽤资源 当有⻋开进去的时候就相当于申请⼀个可⽤资源可⽤⻋位就 -1 (这个称为信号量的 P 操作) 当有⻋开出来的时候就相当于释放⼀个可⽤资源可⽤⻋位就 1 (这个称为信号量的 V 操作) 如果计数器的值已经为 0 了还尝试申请资源就会阻塞等待直到有其他线程释放资源 英语中 P 操作 用 acquire V 操作 用 release 锁本质上就是属于一种特殊的信号量 锁就是 可用资源为 1 的信号量 加锁操作P 操作1 变成 0 解锁操作V 操作0 变成 1 这其实就是二元信号量 操作刺痛提供了 信号量 实现提供了 apiJVM 封装了这样的 api就可以在 java 代码中使用了 public class ThreadDemo36 {public static void main(String[] args) throws InterruptedException {Semaphore semaphore new Semaphore(4);semaphore.acquire();System.out.println(P 操作);semaphore.acquire();System.out.println(P 操作);semaphore.acquire();System.out.println(P 操作);semaphore.acquire();System.out.println(P 操作);semaphore.acquire();System.out.println(P 操作);//semaphore.release();} }这里第五次操作会堵塞 开发中如果遇到了需要申请资源的常见就可以使用信号量来实现 4. CountDownLatch CountDownLatch 主要是适用于多个线程来完成一系列任务的时候用来衡量任务的进程是否完成 比如把一个大的任务拆分成多个小的任务让这些任务并发的去执行 就可以使用 CountDownLatch 来判定说当前这些任务是否都完成了 下载一个文件就可以使用多线程下载 在我们的生活中很多下载工具的下载速度很慢 相比之下有一些专业的下载工具就可以成倍的提升比如 IDM 这个时候普通的下载软件往往和资源服务器只有一个链接服务器往往会对于链接传输的速度有限制 而专业的软件往往是多线程下载每个线程都建立一个链接此时就需要把任务进行分割 CountDownLatch 主要有两个方法 await 调用的时候就会阻塞就会等待其他的线程完成任务所有的线程都完成了任务之后此时这个 await 才会返回才会继续往下走countDown 告诉 CountDownLatch 我当前这一个子任务已经完成 public class ThreadDemo37 {public static void main(String[] args) throws InterruptedException {//10 个选手参赛await 就会在 10次调用完 countDown 之后才能继续执行CountDownLatch countDownLatch new CountDownLatch(10);for (int i 0; i 10; i) {int id i;Thread t new Thread(() - {System.out.println(thread id);try {Thread.sleep(500);} catch (InterruptedException e) {throw new RuntimeException(e);}//通知说当前的任务执行完毕了countDownLatch.countDown();});t.start();}countDownLatch.await();System.out.println(所有的任务都完成了);} } 如果是 i 9这里就会进行阻塞
http://www.dnsts.com.cn/news/181812.html

相关文章:

  • 中国住建厅网站官网贵阳网站托管
  • 圣诞网站怎么做网站通内容管理系统
  • 一个网站可以做多少个关键词做网站是要云空间吗
  • 凌源网站优化中国营销咨询公司排名
  • 网站建设---部署与发布超级优化还原
  • 郑州网站开发招聘网站建设广金手指六六十四
  • 做简单网站的框架手机app软件安装下载
  • 网站 建设 汇报fc网页游戏排行榜
  • 建设机械网站策划软件开发和app开发的区别
  • 阿里巴巴国际站怎么开店wordpress加入视频
  • 江苏专业网站建设福建住房和城乡建设厅网站一体化平台
  • 免费行情网站链接wordpress公共聊天室
  • 网站建设怎么汇报东营做网站多少钱
  • 网站建设要什么软件旅游的网站怎么做
  • 临沂哪里有做网站的全球新冠疫苗接种率
  • 淘宝联盟网上的网站建设怎么制作属于自己的网址
  • 国外做兼职网站有哪些ftp 企业网站
  • 找别人做网站怎么防止别人修改社交手机网站开发
  • 搭建网站知识美容美发化妆品培训企业网站源码带后台php织梦dede5.7
  • 中国网站的建设如何使用wordpress html代码
  • 好品质高端网站设计新感觉建站wordpress数据库密码解密
  • 郑州网站推广价自定义wordpress后台
  • 平台建站建设微信网页开发教程
  • 网站后台生成器网站外链建设书籍
  • 西安网站建设的费用公司注册网站需要什么资料
  • 做空压机网站沈阳专业seo排名优化公司
  • 巴彦淖尔专业做网站的网易企业邮箱附件打不开
  • 湖南省建设厅官方网站官网东莞网站设计评价
  • 自己切片视频做网站网络推广24年怎么做
  • 设计师看什么网站手机免费资源下载网站模板