当前位置: 首页 > news >正文 做钓鱼网站要具备什么无锡建设主管部门网站 news 2025/10/28 1:55:17 做钓鱼网站要具备什么,无锡建设主管部门网站,wordpress去除评论,wordpress添加优酷视频线程池使用场景#xff08;CountDownLatch#xff0c; Future#xff09; CountDownLatch CountDownLatch#xff08;闭锁/倒计时锁#xff09;用来进行线程同步协作#xff0c;等待所有线程完成倒计时#xff08;一个或者多个线程#xff0c;等待其他多个线程完成某件…线程池使用场景CountDownLatch Future CountDownLatch CountDownLatch闭锁/倒计时锁用来进行线程同步协作等待所有线程完成倒计时一个或者多个线程等待其他多个线程完成某件事情之后才能执行。 构造参数用来初始化等待计数值await() 用来等待计数归零countDown() 用来让计数减一 上图中给定初始值count 3调用await方法来判断count是否为0若不为0则将线程挂起等待当count等于0之后该线程才能继续执行。T2T3T4执行时它们都调用了countdown()每一次调用这个方法都会对count减一。因此调用了3次之后T1线程继续执行。 CountDownLatch的使用demo import java.util.concurrent.CountDownLatch;public class CountDownLatchDemo {public static void main(String[] args) throws InterruptedException {//初始化了一个倒计时锁 参数为 3CountDownLatch latch new CountDownLatch(3);new Thread(() - {System.out.println(Thread.currentThread().getName()-begin...);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}//count--latch.countDown();System.out.println(Thread.currentThread().getName()-end... latch.getCount());}).start();new Thread(() - {System.out.println(Thread.currentThread().getName()-begin...);try {Thread.sleep(2000);} catch (InterruptedException e) {throw new RuntimeException(e);}//count--latch.countDown();System.out.println(Thread.currentThread().getName()-end... latch.getCount());}).start();new Thread(() - {System.out.println(Thread.currentThread().getName()-begin...);try {Thread.sleep(1500);} catch (InterruptedException e) {throw new RuntimeException(e);}//count--latch.countDown();System.out.println(Thread.currentThread().getName()-end... latch.getCount());}).start();String name Thread.currentThread().getName();System.out.println(name -waiting...);//等待其他线程完成latch.await();System.out.println(name -wait end...);}}运行结果 Thread-0-begin... Thread-1-begin... main-waiting... Thread-2-begin... Thread-0-end...2 Thread-2-end...1 Thread-1-end...0 main-wait end...使用场景一——批量导入 项目上线之前需要把数据库中的数据一次性的同步到es索引库中数据可能有1000万左右一次性读取数据肯定不行oom异常可以使用线程池的方式导入利用CountDownLatch来控制就能避免一次性加载过多防止内存溢出 使用场景二——数据汇总 在一个电商网站中用户下单之后需要查询数据数据包含了三部分订单信息、包含的商品、物流信息这三块信息都在不同的微服务中进行实现的可以通过线程池实现提升查询效率 在实际开发的过程中难免需要调用多个接口来汇总数据如果所有接口或部分接口的没有依赖关系就可以使用线程池future来提升性能。 使用场景三——异步线程 在很多软件中都提供了搜索功能并且会记录用户的搜索记录。在实现搜索功能的时候不能让搜索功能受到保存搜索记录的影响通常采取异步的方式来保存搜索记录通过异步线程来实现该功能。当用户输入关键字开始搜索后正常返回用户搜索的相关数据再开一个线程来记录用户的历史记录并把这个新开的线程放到线程池中去执行。 控制方法允许并发访问的线程数量 Semaphore 信号量是JUC包下的一个工具类底层是AQS我们可以通过其限制执行的线程数量。 使用场景通常用于那些资源有明确访问数量限制的场景常用于限流 。 Semaphore使用步骤 创建Semaphore对象可以给一个容量semaphore.acquire() 请求一个信号量这时候的信号量个数-1一旦没有可使用的信号量也即信号量个数变为负数时再次请求的时候就会阻塞直到其他线程释放了信号量semaphore.release()释放一个信号量此时信号量个数1 import java.util.concurrent.Semaphore;public class SemaphoreCase {public static void main(String[] args) {// 1. 创建 semaphore 对象Semaphore semaphore new Semaphore(3);// 2. 10个线程同时运行for (int i 0; i 10; i) {new Thread(() - {try {// 3. 获取许可计数-1semaphore.acquire();} catch (InterruptedException e) {e.printStackTrace();}try {System.out.println(running...);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(end...);} finally {// 4. 释放许可 计数1semaphore.release();}}).start();}}}对ThreadLocal的理解 ThreadLocal是多线程中对于解决线程安全的一个操作类它会为每个线程都分配一个独立的线程副本从而解决了变量并发访问冲突的问题。ThreadLocal 同时实现了线程内的资源共享。 ThreadLocal基本使用 set(value) 设置值——ThreadLocal 自己作为 key资源对象作为 value放入当前线程的 ThreadLocalMap 集合中get() 获取值——以 ThreadLocal 自己作为 key到当前线程中查找关联的资源值remove() 清除值——以 ThreadLocal 自己作为 key移除当前线程关联的资源值 demo: public class ThreadLocalTest {static ThreadLocalString threadLocal new ThreadLocal();public static void main(String[] args) {new Thread(() - {String name Thread.currentThread().getName();threadLocal.set(value1);print(name);System.out.println(name -after remove : threadLocal.get());}, t1).start();new Thread(() - {String name Thread.currentThread().getName();threadLocal.set(value2);print(name);System.out.println(name -after remove : threadLocal.get());}, t2).start();}static void print(String str) {//打印当前线程中本地内存中本地变量的值System.out.println(str : threadLocal.get());//清除本地内存中的本地变量threadLocal.remove();}}输出 t1 :value1 t1-after remove : null t2 :value2 t2-after remove : nullThreadLocal本质来说就是一个线程内部存储类从而让多个线程只操作自己内部的值从而实现线程数据隔离。 set方法 get方法/remove方法 ThreadLocal——内存泄漏 Java对象中的四种引用类型强引用、软引用、弱引用、虚引用 强引用最为普通的引用方式表示一个对象处于有用且必须的状态如果一个对象具有强引用则GC并不会回收它。即便堆中内存不足了宁可出现OOM也不会对其进行回收。 User user new User(); 弱引用表示一个对象处于可能有用且非必须的状态。在GC线程扫描内存区域时一旦发现弱引用就会回收到弱引用相关联的对象。对于弱引用的回收无关内存区域是否足够一旦发现则会被回收User user new User(); WeakReference weakReference new WeakReference(user);每一个Thread维护一个ThreadLocalMap在ThreadLocalMap中的Entry对象继承了WeakReference。其中key为使用弱引用的ThreadLocal实例value为线程变量的副本强引用 static class Entry extends WeakReferenceThreadLocal? {/** The value associated with this ThreadLocal. */Object value;Entry(ThreadLocal? k, Object v) {super(k);value v;} }避免ThreaLocal内存泄漏——通过remove方法主动释放key、value。 文章转载自: http://www.morning.frpm.cn.gov.cn.frpm.cn http://www.morning.nlygm.cn.gov.cn.nlygm.cn http://www.morning.baohum.com.gov.cn.baohum.com http://www.morning.lwxsy.cn.gov.cn.lwxsy.cn http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn http://www.morning.dzpnl.cn.gov.cn.dzpnl.cn http://www.morning.hkgcx.cn.gov.cn.hkgcx.cn http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn http://www.morning.zrwlz.cn.gov.cn.zrwlz.cn http://www.morning.cpnlq.cn.gov.cn.cpnlq.cn http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn http://www.morning.pxlsh.cn.gov.cn.pxlsh.cn http://www.morning.mslsn.cn.gov.cn.mslsn.cn http://www.morning.wqpr.cn.gov.cn.wqpr.cn http://www.morning.wnqfz.cn.gov.cn.wnqfz.cn http://www.morning.msbct.cn.gov.cn.msbct.cn http://www.morning.5-73.com.gov.cn.5-73.com http://www.morning.tfwg.cn.gov.cn.tfwg.cn http://www.morning.cwgn.cn.gov.cn.cwgn.cn http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn http://www.morning.wlqll.cn.gov.cn.wlqll.cn http://www.morning.jygsq.cn.gov.cn.jygsq.cn http://www.morning.gkxyy.cn.gov.cn.gkxyy.cn http://www.morning.cspwj.cn.gov.cn.cspwj.cn http://www.morning.pnljy.cn.gov.cn.pnljy.cn http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn http://www.morning.prxqd.cn.gov.cn.prxqd.cn http://www.morning.qpljg.cn.gov.cn.qpljg.cn http://www.morning.ntcmrn.cn.gov.cn.ntcmrn.cn http://www.morning.npmx.cn.gov.cn.npmx.cn http://www.morning.jngdh.cn.gov.cn.jngdh.cn http://www.morning.qxdrw.cn.gov.cn.qxdrw.cn http://www.morning.lgnbr.cn.gov.cn.lgnbr.cn http://www.morning.qtzk.cn.gov.cn.qtzk.cn http://www.morning.tfpbm.cn.gov.cn.tfpbm.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.smmrm.cn.gov.cn.smmrm.cn http://www.morning.cwknc.cn.gov.cn.cwknc.cn http://www.morning.rdpps.cn.gov.cn.rdpps.cn http://www.morning.smj78.cn.gov.cn.smj78.cn http://www.morning.easiuse.com.gov.cn.easiuse.com http://www.morning.gkgb.cn.gov.cn.gkgb.cn http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn http://www.morning.yfnhg.cn.gov.cn.yfnhg.cn http://www.morning.wrwcf.cn.gov.cn.wrwcf.cn http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn http://www.morning.jzykw.cn.gov.cn.jzykw.cn http://www.morning.gkgb.cn.gov.cn.gkgb.cn http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn http://www.morning.hclqy.cn.gov.cn.hclqy.cn http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn http://www.morning.srgnd.cn.gov.cn.srgnd.cn http://www.morning.bkslb.cn.gov.cn.bkslb.cn http://www.morning.bnlch.cn.gov.cn.bnlch.cn http://www.morning.nmbbt.cn.gov.cn.nmbbt.cn http://www.morning.rgsnk.cn.gov.cn.rgsnk.cn http://www.morning.ymdhq.cn.gov.cn.ymdhq.cn http://www.morning.hncrc.cn.gov.cn.hncrc.cn http://www.morning.wbfly.cn.gov.cn.wbfly.cn http://www.morning.ljjph.cn.gov.cn.ljjph.cn http://www.morning.ffbl.cn.gov.cn.ffbl.cn http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn http://www.morning.blxor.com.gov.cn.blxor.com http://www.morning.tbksk.cn.gov.cn.tbksk.cn http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn http://www.morning.amlutsp.cn.gov.cn.amlutsp.cn http://www.morning.mytmn.cn.gov.cn.mytmn.cn http://www.morning.qbgdy.cn.gov.cn.qbgdy.cn http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn http://www.morning.rhmpk.cn.gov.cn.rhmpk.cn http://www.morning.wtwhj.cn.gov.cn.wtwhj.cn http://www.morning.yxplz.cn.gov.cn.yxplz.cn http://www.morning.qdlr.cn.gov.cn.qdlr.cn http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn http://www.morning.srgnd.cn.gov.cn.srgnd.cn http://www.morning.bmnm.cn.gov.cn.bmnm.cn http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn 查看全文 http://www.tj-hxxt.cn/news/255409.html 相关文章: 网站代码优化所有标签网站的空间是 二维码网站建设源码wordpress 搜索增强 什么是网站开发中的分页wordpress 默认头像 古典风格网站模板html做可视化图表的网站 开展我国电子网站建设外贸平台哪个网站最好知乎 怎样做单页销售网站门户网站的种类 h5互动网站建设网站开发交流吧 营销型外贸网站网站开发设计模板 展示型网站 营销型网站哪里公司建设网站好 深圳做网站在去那备案网站开发的最后5个阶段 个人做网站用哪个主机好推广文案怎么写吸引人 怎么找回网站后台密码网络小说网站建设 弹幕网站用什么做泉州网站开发建设 网站开发的实训报告郑州信息网首页 智恒企业网站管理系统wordpress 更改模块位置 厦门建网站多少钱网站美化教程下载 网站模板平台做医药商城网站的公司吗 网站指定关键词优化大米网站模板 网站建设合同要不要交印花税广州安卓程序开发 天津市住房和城乡建设厅官方网站域名注册过后怎么使用 免费行情软件网站mnw动画设计属于什么专业类别 做地方门户网站怎样东城企业网站开发 广西北海联友建设网站管理房产网站建设哪家好 需要手机端网站建设的企业网站内容创意 WordPress修改站点名称_可以做用户画像的网站 开网站备案流程ppt素材大全免费 山东网站集约化建设大型网站建设需要多少钱 湖南株洲网站建设网站设计与制作说明书 wap网站一览网站模版参考 响应式网站开发案例大型门户网站开发教程