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

网站打赏怎么做的如何找网站制作

网站打赏怎么做的,如何找网站制作,有没有帮忙做网站的,快递建站收费标准理解代码必备 参数中使用#xff08;String... keys#xff09; 在 Java 中#xff0c;String… keys 这种语法被称为可变参数#xff08;Varargs#xff09;#xff0c;是 Java 5 引入的特性#xff0c;用于简化方法参数的定义。它允许方法接收任意数量#xff08;包…理解代码必备 参数中使用String... keys 在 Java 中String… keys 这种语法被称为可变参数Varargs是 Java 5 引入的特性用于简化方法参数的定义。它允许方法接收任意数量包括零个的同一类型参数 用此可变参数可以省去创建String[]数组的功夫而且不写和写几个都行更加灵活 可变参数使用限制 一个方法只能有一个可变参数 可变参数必须是方法的最后一个参数对于CountDownLatch的使用 CountDownLatch 是 Java 并发包java.util.concurrent中的一个同步工具类用于协调多个线程的执行顺序。它允许一个或多个线程等待其他线程完成操作后再继续执行类似于一个 “倒计时门闩” 会对其进行计数用一次减一进行计数这就是为什么要用tryfinallythreadPool.executeRunnable task threadPool.execute(Runnable task) 是 Java 线程池ExecutorService的核心方法之一用于提交一个任务Runnable 对象到线程池执行。它是线程池管理多线程的基础操作下面详细解释其功能和用法。 HashMap模拟数据库 package KaKe;import java.util.HashMap; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class SimpleDatabase {private MapString,String dataStore;//HashMap模拟数据库存储数据private ExecutorService threadPool;//线程池管理查询线程//无参构造器public SimpleDatabase(){//给HashMap存储数据库创建对象dataStore new HashMap();//线程池中创建三个线程threadPool Executors.newFixedThreadPool(3);}//模拟数据库插入public void insert(String key,String value){dataStore.put(key,value);System.out.println(key:key,value:value);}//多线程查询public void queryWithThreads(String... keys){if(keysnull || keys.length0){System.out.println(查询条件为空);return;}CountDownLatch latch new CountDownLatch(keys.length);//给keys数组中的每个key计数System.out.println(启动多线程查询);for (String key : keys) {//提交任务到线程池中执行threadPool.execute(()-{try{//模拟查询操作String value dataStore.get(key);String result value ! null ?线程[Thread.currentThread().getName()]查询到keykey,valuevalue:线程[Thread.currentThread().getName()]查询不到keykey;System.out.println(result);}finally {latch.countDown();//执行完毕计数减一}});}try{latch.await();//等待所有线程执行完毕System.out.println(所有查询线程执行完成);}catch (InterruptedException e) {e.printStackTrace();}}public void shutdown(){if (threadPool!null !threadPool.isShutdown()){threadPool.shutdown();System.out.println(数据库连接关闭);}}public static void main(String[] args) {SimpleDatabase db new SimpleDatabase();//插入数据db.insert(user1,张三);db.insert(user2,李四);db.insert(user3,王五);db.queryWithThreads(user1,user2,user3);db.shutdown();}} key:user1,value:张三 key:user2,value:李四 key:user3,value:王五 启动多线程查询 线程[pool-1-thread-3]查询到keyuser3,value王五 线程[pool-1-thread-2]查询到keyuser2,value李四 线程[pool-1-thread-1]查询到keyuser1,value张三 所有查询线程执行完成 数据库连接关闭List模拟数据库 package KaKe;import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ListBasedDatabase {private ListMap.EntryString,String dataStore;private ExecutorService threadPool;public ListBasedDatabase(){//使用线程安全的ArrayList保证线程安全dataStore new CopyOnWriteArrayList();threadPool Executors.newFixedThreadPool(3);}public void insert(String key,String value){for (Map.EntryString, String entry : dataStore) {if (entry.getKey().equals(key)){System.out.println(插入失败keykey已存在);return;}}dataStore.add(Map.entry(key, value));System.out.println(插入成功keykeyvaluevalue);}public void queryWithThreads(String... keys){if (keysnull || keys.length0){System.out.println(查询条件为空);return;}CountDownLatch latch new CountDownLatch(keys.length);System.out.println(启动线程查询);for (String key : keys) {threadPool.execute(()-{try{String result searchInList(key);System.out.println(线程[Thread.currentThread().getName()]result);}finally {latch.countDown();}});}try{latch.await();System.out.println(所有线程查询执行完成);}catch(InterruptedException e){e.printStackTrace();}}//在List中查找数据private String searchInList(String key){for (Map.EntryString,String entry: dataStore){if (entry.getKey().equals(key)){return 查询到数据keykeyvalueentry.getValue();}}return 未找到keykey的数据;}public void shutdown(){if (threadPool!null !threadPool.isShutdown() ){threadPool.shutdown();System.out.println(数据库关闭连接);}}public static void main(String[] args) {ListBasedDatabase db new ListBasedDatabase();// 插入数据db.insert(user1, 张三);db.insert(user2, 李四);db.insert(user3, 王五);db.insert(user4, 赵六);db.insert(user5, 董七);db.queryWithThreads(user1,user2,user3,user4,user5);db.shutdown();} } 插入成功keyuser1value张三 插入成功keyuser2value李四 插入成功keyuser3value王五 插入成功keyuser4value赵六 插入成功keyuser5value董七 启动线程查询 线程[pool-1-thread-1]查询到数据keyuser1value张三 线程[pool-1-thread-3]查询到数据keyuser3value王五 线程[pool-1-thread-1]查询到数据keyuser4value赵六 线程[pool-1-thread-2]查询到数据keyuser2value李四 线程[pool-1-thread-3]查询到数据keyuser5value董七 所有线程查询执行完成 数据库关闭连接总结 其实本质上还是使用HashMap ,只不过后者是用List将其HashMap封装起来然后插入和查询
http://www.hkea.cn/news/14472183/

相关文章:

  • 做网站的费用计入哪个科目电影院可以寄存东西吗
  • 求做图的网站怎么做秒赞网站
  • 地方志网站群建设wordpress 创建数据库表
  • 专门做西装网站企业网站的优缺点
  • 在线咨询网站开发价格国外外包平台
  • seo优化网站模板外贸网站建设制作设计案例
  • 网站制作的销售对象重庆宣网站建设
  • 西固网站建设平台织梦模板大全
  • 现在流行的网站开发制作工具可视化建站源码
  • 台州市建设规划局网站6WordPress图片裁减
  • 装修网站怎么做的好wordpress自建模板
  • 中山三水网站建设万江区网站建设
  • winserver2008上用iis发布网站北京做公司网站的公司
  • 摄影网站开发的背景广饶网站制作
  • 网站建设与维护 技能宝塔wordpress 404配置
  • 网站制作前言公司织梦者网站模板
  • 郓城县网站建设合肥包河区最新消息
  • wordpress站内搜索统计代理备案 网站 安全吗
  • 营销平台网站建设本地wordpress站点上传文件
  • 建设部网标准下载网站做西班牙语网站
  • 网站站点怎么做淄博网络公司做网站的电话
  • 自己开网站怎么开谷歌在线浏览器免费入口
  • 网站建立需要多少钱php网站开发框架
  • 百度有哪些网站可免费做软件推广国外大气网站欣赏
  • 长春建站程序杭州定制网站制作
  • net建站系统宝安区建设工程交易服务中心
  • 电子商务网站建设作用建个什么网站好呢
  • 哈密市建设局网站洛可可
  • 懒人手机网站模板wordpress淘宝组件插件
  • 网页设计做一个介绍自己的的网站wordpress 表单