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

做创意ppt网站有哪些方面wordpress播放上传视频

做创意ppt网站有哪些方面,wordpress播放上传视频,poedit pro wordpress,贵州企业展示型网站建设Lock和Condition Lock 线程之间同步或者竞争都需要锁这类结构#xff0c;一般我们都会用Object的wait和signal搭配synchronized关键字进行多线程开发#xff0c;但是很多时候会造成死锁的现象#xff0c;这是因为synchroniezd无法破坏死锁的产生条件#xff0c;但是Lock接…Lock和Condition Lock 线程之间同步或者竞争都需要锁这类结构一般我们都会用Object的wait和signal搭配synchronized关键字进行多线程开发但是很多时候会造成死锁的现象这是因为synchroniezd无法破坏死锁的产生条件但是Lock接口的一些实现类可以帮助我们避免思索地产生。一般用的比较多的是ReentrantLock这个Lock接口的实现类。 ReentrantLock 很多时候ReentrantLock是为了替代synchronized情况下同意出现死锁的情况的。并且相比于synchroniezd还有以下几个优点 可中断可以设置超时时间可以设置为公平锁支持多个条件变量与 synchronized 一样都支持可重入 比如笔者有使用过一些任务分配和执行工具如果出现了一台机器/CPU出现了同一时间内分配了多个任务或者长时间没有分配任务那么对于我们的业务来说就很危险在这种情况下可以通过使用ReentrantLock帮助我们解决这种问题 public static void main(String[] args) throws ExecutionException, InterruptedException {/*** 我们是以任务为主体获取信息如果是我们的资源主体拉取信息则reentrantLock是可以工具是否是公平锁而且获得对资源的掌控权的* 如果是tryLock()方法则只要一看到有所就会获取锁*/ ​/*** 资源有10个*/AtomicReferenceInteger resource new AtomicReference(10);//锁final Lock reentrantLock new ReentrantLock(); ​ExecutorService executorService Executors.newFixedThreadPool(1); ​ListTaskInfo taskInfos new ArrayList();for (int i 0; i 10; i) {taskInfos.add(new TaskInfo().setTaskName(任务 i).setId(1));} ​ListCompletableFutureString taskList new ArrayList();ListTaskInfo didntExecuteTaskList new ArrayList();for (int i 0; i 100; i) {int finalI i;taskList.add(CompletableFuture.supplyAsync(() - {reentrantLock.lock();TaskInfo taskInfo taskInfos.get(finalI % 10).setId(finalI);boolean executable resource.get() 0;if (executable) {resource.getAndSet(resource.get() - 1);/*** 开始执行*/CompletableFuture.supplyAsync(() - {try {Thread.sleep((long) (Math.random() * 100 % 2));} catch (InterruptedException e) {throw new RuntimeException(e);}/*** 执行完成*/resource.getAndSet(resource.get() 1);return 1;});reentrantLock.unlock();} else {didntExecuteTaskList.add(taskInfo);}return 任务 taskInfo.getTaskName() 执行 (executable ? 成功 : 失败);}, executorService));} ​for (CompletableFutureString completableFuture : taskList) {System.out.println(completableFuture.get());}System.out.println(没有完成的任务有 didntExecuteTaskList.stream().map(TaskInfo::getTaskName).collect(Collectors.toList()));}此时有可能会发生死锁如果出现一些任务长时间占用那么我们可以通过ReentrantLock 的 lockInterruptibly() 方法及时进行打断这种方式在synchronized情况下无法实现 Condition Condition将Object监控器方法 wait notify和notifyAll 分解为不同的对象从而通过与任意Lock实现结合使用从而使每个对象具有多个等待集。 Lock替换了synchronized方法和语句的使用而Condition替换了Object监视器方法的使用。 Condition实例从本质上绑定到锁。 要获取特定Lock实例的Condition实例请使用其newCondition()方法 如果说Lock是锁只有拿到锁才能执行的话Condition就是信号量有了信号量才能执行后续的操作Condition更像是线程之间的同步机制如果说有多个线程之间需要相互进行条件制约的话可以通过Condition进行开发业务。 有时候lock抢到了锁可能发现不需要进行执行所以的话还需要condition做更加细致的操作。 比如在Lock和Condition下实现的消息队列中Lock保证消息队列线程安全Condition保证业务需要比如说不能消费空队列或者往满队列中添加信息这种方式在很多框架中都有使用
http://www.dnsts.com.cn/news/64539.html

相关文章:

  • 那个网站可以做logowordpress渗透经验
  • 北京公司可以在上海建网站吗wordpress 评论 html
  • 族蚂建站怎么样建站宝盒下载
  • 搜索建站网陕西一建2022停考
  • 如何做好网站seo优化wordpress 安装 失败
  • 响应式网站和平时网站的区别菲律宾做网站好吗
  • 买域名建网站价格做网站前端用什么技术好
  • 中专网站建设课程点击宝seo
  • 做下载网站赚钱吗哈尔滨网站建设吧
  • 网站备案上海百度数据研究中心
  • 黄金网站网站建设套餐内容
  • 钢格板保定网站建设广州网站建设的地方推荐
  • 信宜做网站设置网站建设申请计划
  • 宁德网站建设汽修网站怎么做
  • 营销型网站制作广告发布登记管理规定
  • 买的网站模板里面是什么wordpress同步插件
  • 个人如何建设电子商务网站连云港建设工程安全网站
  • 旅游营销型网站手机网站适应屏幕
  • 关闭网站怎么不保存我做的更改凡科建站做的网站收录慢吗
  • 手机建设银行官方网站唯品会网站开发技术分析
  • 花店网站建设目的电商类网站怎么做 seo
  • 网站描述wordpress设计建网站
  • 做食品网站有哪些哪个网站可以做兼职
  • 网站开发 百度云在线crm网站
  • 国外做的比较好的网站有哪些某互联网公司开发官网的首页
  • 官方查企业信息的网站上海网站排名公司
  • 西安制作网站的电话如何自建购物网站
  • 网站空间计算建网站需要什么服务器
  • 学什么专业可以做网站海南疾控发布问卷调查
  • 营销型网站成功案例linux版本的wordpress