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

html5期末大作业个人网站制作windows优化大师会员

html5期末大作业个人网站制作,windows优化大师会员,家居企业网站建设机构,怎样建俄文网站JUC 并发模块是java在多线程提供的一种更加合理的设计并发框架。 J.U.C 是java.util.concurrent 包名称首字母的缩写。J.U.C是为了解决Java在多线程并发环境的性能以及稳定性问题。 J.U.C 在锁的方面也提供一套新机制的锁,除此外,J.U.C还提供了指定数据类…

        JUC 并发模块是java在多线程提供的一种更加合理的设计并发框架。

        J.U.C 是java.util.concurrent 包名称首字母的缩写。J.U.C是为了解决Java在多线程并发环境的性能以及稳定性问题。

        J.U.C 在锁的方面也提供一套新机制的锁,除此外,J.U.C还提供了指定数据类型的同步机制,避免了在进行数据操作时通过方法实现同步的处理了

        首先,了解一下JUC并发包常用的类。

一,ThreadFactory

        一个面向对象的编程语言,就需要进行不断的解耦和设计的考虑,毕竟直接通过关键字 new 进行线程对象的构建,所以,为了更加符合面向对象的设计理念,J.U.C里面提供线程对象的获取机制,提供一个工厂类的标准接口。

package java.util.concurrent;/*** @since 1.5* @author Doug Lea*/
public interface ThreadFactory {Thread newThread(Runnable r);
}

        看案例

public static void main(String[] args) {CustomThreadFactory customThreadFactory = new CustomThreadFactory("worker", false);ExecutorService executorService = Executors.newFixedThreadPool(3, customThreadFactory);for (int i = 0; i < 5; i++) {executorService.execute(() -> {System.out.println(Thread.currentThread().getName() + " is running");});}executorService.shutdown();
}

        输出结果

worker-thread-1 is running
worker-thread-1 is running
worker-thread-1 is running
worker-thread-2 is running
worker-thread-3 is running

二,TimeUint 时间单元

        在实际开发中,不仅仅只要毫秒的线程配置的要求,还可能会用到时,分,秒等等。所以在java里面进一步简化这种时间的计算管理,提供了一个专属的TimeUnit工具类,该工具类是一个枚举类

        该工具类提供了时间常用的时间常量:

package java.util.concurrent;public enum TimeUnit {NANOSECONDS(TimeUnit.NANO_SCALE),	/** 纳秒 */MICROSECONDS(TimeUnit.MICRO_SCALE),	/** 微秒 */MILLISECONDS(TimeUnit.MILLI_SCALE),	/** 毫秒 */SECONDS(TimeUnit.SECOND_SCALE),		/** 秒 */MINUTES(TimeUnit.MINUTE_SCALE),		/** 分钟 */HOURS(TimeUnit.HOUR_SCALE),			/** 小时 */DAYS(TimeUnit.DAY_SCALE);			/** 天 *//** 忽略其他代码 */
}

        还提供常用的时间转换方法:

public class TimeUnitExample {public static void main(String[] args) {long hours = 2; // 2 小时long milliseconds = TimeUnit.MILLISECONDS.convert(hours, TimeUnit.HOURS);System.out.println(hours + " 小时 = " + milliseconds + " 毫秒");}
}

输出结果:

2 小时 = 7200000 毫秒

三,Delayed

3.1 主要用途

        Delayed 是 Java 并发包 (java.util.concurrent) 中的一个接口,主要用于表示带有延迟时间的对象,通常与 延迟队列 (DelayQueue) 一起使用。

public interface Delayed extends Comparable<Delayed> {/*** 返回当前对象的剩余延迟时间,单位由 unit 指定。* 只有当 getDelay() 返回值小于等于 0 时,该对象才可以从队列中取出。*/long getDelay(TimeUnit unit);
}

实现 Comparable<Delayed> 接口

  • Delayed 继承了 Comparable<Delayed>,因此 Delayed 对象需要实现 compareTo() 方法,用于在 DelayQueue 中按照延迟时间进行排序。

Delayed 主要配合 DelayQueue 使用,可用于:

  • 任务调度(定时任务执行)
  • 缓存超时处理(延迟移除缓存)
  • 定时重试机制(如网络请求失败后的重试)

3.2 Demo案例

class DelayedTask implements Delayed {private final String name;      // 任务名称private final long startTime;  // 任务执行时间(毫秒)public DelayedTask(String name, long delayTime) {this.name = name;this.startTime = System.currentTimeMillis() + delayTime;}@Overridepublic long getDelay(TimeUnit unit) {long remainingTime = startTime - System.currentTimeMillis();return unit.convert(remainingTime, TimeUnit.MILLISECONDS);}@Overridepublic int compareTo(Delayed o) {return Long.compare(this.getDelay(TimeUnit.MILLISECONDS), o.getDelay(TimeUnit.MILLISECONDS));}public String getName() {return name;}@Overridepublic String toString() {return "Task{" + "name='" + name + '\'' + ", startTime=" + startTime + '}';}
}public class DelayQueueExample {public static void main(String[] args) throws InterruptedException {DelayQueue<DelayedTask> delayQueue = new DelayQueue<>();// 添加任务(分别延迟 3 秒和 5 秒)delayQueue.put(new DelayedTask("Task1", 3000));delayQueue.put(new DelayedTask("Task2", 5000));System.out.println("任务添加完成,稍后执行");// 逐个取出任务(只有到达执行时间的任务才能取出)while (!delayQueue.isEmpty()) {DelayedTask task = delayQueue.take();  // take() 会阻塞,直到可取出System.out.println("任务执行: " + task.getName() + " 执行时间: " + System.currentTimeMillis());}System.out.println("全部执行完成");}
}

输出结果

任务添加完成,稍后执行
任务执行: Task1 执行时间: 1743061599626
任务执行: Task2 执行时间: 1743061601630
全部执行完成
http://www.dtcms.com/wzjs/217960.html

相关文章:

  • 深圳做网站开发新乡网站优化公司推荐
  • 网站开发net教程广州网站建设技术外包
  • 泉州网站建设方案详细在线建站网页制作网站建设平台
  • 办公用品网站建设市场定位网站查找工具
  • 西湖区住房和城市建设局网站常州seo关键词排名
  • 驾校网站制作上海搜索排名优化公司
  • b站直播4000观看人数淘宝关键词优化技巧教程
  • 万户做网站怎么样中国十大策划公司排名
  • 深圳市南山区政府在线百度seo和sem
  • 网站首页设计原则西安网站seo优化公司
  • 郑州虚拟货币网站开发新网域名注册官网
  • 孟村建设局网站杭州seo排名收费
  • it培训机构网站开发网络营销运营方案
  • 晋中路桥建设集团有限公司网站5188关键词平台
  • 网站开发实训心得培训学校
  • 网站制作公司成都石首seo排名
  • wordpress详细教程seo网站推广如何做
  • wordpress小说站数据库seog
  • 做网站怎么认证微博seo
  • 网站开发的基本流程图精准网站seo诊断报告
  • 网站建设与web前端区别公众号推广方法
  • 连云港品牌网站建设安卓aso优化工具
  • 群晖系统可以做网站吗网页制作作业100例
  • 好用心 做网站送女友社交网络推广方法有哪些
  • 橙子建站三分钟搭建落地页接推广怎么收费
  • 如何申请一个网站朋友圈推广平台
  • 自己创业做网站济南百度
  • 做代理的项目在哪个网站接外包网站
  • 做网站怎样做才有百度快照品牌网站设计
  • 怎么做跳转不影响原网站排名宁德市蕉城区