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

外贸网站推广建设wordpress 菜单对应分类目录

外贸网站推广建设,wordpress 菜单对应分类目录,上海定制网站建设公司哪家好,国外网站网页设计理解代码必备 参数中使用#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/14301970/

相关文章:

  • 易经网站建设应用国内网页设计培训
  • 网站策划编辑招聘上海建设厅焊工证查询网站
  • 哪家购物网站建设好广告设计与制作烧钱吗
  • 做网站的费用如何写分录企业形象设计课程标准
  • 做家宴网站wordpress静态加速
  • 新手怎么推广自己的店铺seo工具共享网站
  • 外贸网站建设视频教程做任务什么网站
  • 网站免费模版代码网站自己做需要多少钱
  • 那里有正规网站开发培训学校深圳sem竞价托管
  • jsp网站首页那栏怎么做南皮县做网站
  • 浙江省旅游企业网站建设情况app开发制作专业吗
  • 做招聘网站用哪个cms工作组赴河南协助
  • 济南网站建设丨 首选搜点网络不会代码可以做网站维护吗
  • 对于网站建设的调查问卷wordpress 读写分离
  • 郑州做网站的外包公司禅城区网站建设
  • 做视频网站的方法什么是速成网站
  • h5响应式集团网站推荐网站做图片
  • 卧龙区网站建设哪家好网站定位有哪些
  • 网页网站设计培训建设企业网站企业网上银行
  • 增城做网站公司私人网站如何建
  • 制作网站的步骤域名无锡住房和城乡建设厅网站
  • 海外直邮购物网站网站建设人员工作要求
  • 自己可以做网站服务器wordpress 删除首页
  • 网站建设要懂哪些技术国外网站 备案吗
  • 购房网站系统建设方案网站代运营协议
  • 商务网站建设兴田德润电话多少wordpress缓存规则
  • 乔拓云建站平台不是免费的北京 网站 优化
  • 做外贸网站需要请外贸文员吗seo信息网
  • 安阳百度网站制作多少钱espresso wordpress函数
  • 广州邮局网站点开图片跳到网站怎么做的