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

企业做网站 里面都写什么国内好的seo

企业做网站 里面都写什么,国内好的seo,公司注册地址的要求,江门城乡建设部网站首页核心对比总表&#xff08;Callable vs Runnable&#xff09;维度RunnableCallable接口定义public interface Runnablepublic interface Callable<V>核心方法void run()V call() throws Exception返回值❌ 无返回值✅ 可返回泛型结果异常处理❌ 只能处理非受检异常✅ 可抛…

核心对比总表(Callable vs Runnable)

维度RunnableCallable
接口定义public interface Runnablepublic interface Callable<V>
核心方法void run()V call() throws Exception
返回值❌ 无返回值✅ 可返回泛型结果
异常处理❌ 只能处理非受检异常✅ 可抛出任意受检/非受检异常
执行方式Thread/Executor.execute()ExecutorService.submit()[也可以通过Thread执行,一般不用]
适用场景简单异步任务需要结果/异常处理的复杂任务

1. 接口定义与核心方法

Runnable(Java 1.0引入)

@FunctionalInterface
public interface Runnable {// 无参数、无返回值、无异常声明void run();
}

使用示例:

Runnable printTask = () -> {System.out.println("执行Runnable任务");// 不能返回结果,不能抛出受检异常
};// 执行方式
new Thread(printTask).start();
// 或
executor.execute(printTask);

Callable(Java 5引入)

public interface Callable<V> {// 返回泛型结果,可抛出任何异常V call() throws Exception;
}

使用示例:

Callable<Integer> calcTask = () -> {System.out.println("执行Callable任务");if (Math.random() > 0.8) {throw new IOException("模拟IO异常");}return 42; // 返回计算结果
};// 执行方式
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(calcTask);//使用Thread也可以,但是Callable不推荐用
FutureTask<Integer> future = new FutureTask(calcTask);
Thread t = new Thread(future);
Integer integer = future.get(); //可以获取到calcTask 返回的结果【42】

2. 异常处理机制对比

Runnable的异常困境

Runnable fileTask = () -> {try {Files.copy(source, target); // 可能抛出IOException} catch (IOException e) {// 只能转为非受检异常throw new RuntimeException(e);}
};// 未捕获异常会导致线程终止
Thread t = new Thread(fileTask);
//使用 Thread.setUncaughtExceptionHandler为线程设置异常处理器,当线程因未捕获的异常终止时会触发该处理器。
//不用Thread.setUncaughtExceptionHandler 线程x就会报错
t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {@Overridepublic void uncaughtException(Thread t, Throwable e) {System.out.println("捕获到异常: " + e.getMessage());// 可以在这里记录日志、通知其他组件等}
});
t.start();

Callable的完整异常链

Callable<String> dbTask = () -> {if (dbConnection.isClosed()) {throw new SQLException("数据库未连接");}return fetchData();
};Future<String> future = executor.submit(dbTask);try {String data = future.get();process(data);
} catch (ExecutionException e) {Throwable cause = e.getCause(); // 获取原始异常if (cause instanceof SQLException) {reconnectDatabase();}
}
http://www.dtcms.com/a/436960.html

相关文章:

  • 对网站政务建设的建议wordpress搜索判断
  • 绵阳做网站的公司aspnet东莞网站建设价格
  • 腾讯官方网站襄阳营销型网站建设
  • 品牌网站建设报价表白金域名的特点
  • html5网站框架怎么做自己淘宝优惠券网站
  • 做网站彩票代理犯法吗网站建设方面的优劣势分析
  • 建设网站的公司兴田德润实力强做暧暖ox网站
  • 沧州礼品行业网站设计项目管理软件哪个比较好
  • 新郑龙湖网站建设长沙线上注册推广公司
  • 网站建设流程王晴儿企业邮箱入口登录
  • 西安市精神文明建设网站delphi 做直播网站
  • 网站团队介绍哈工大 网站开发
  • 做家常菜哪个网站最好企业建设网站多少钱
  • 百度推广网站域名费网站排名西安
  • 海南州商城网站建设建设招聘网站需要注册什么证
  • 无极领域付费网站页面seo是什么意思
  • 麻将网站开发58同城天门网站建设
  • 网站备案信息查询申请网站建设与管理计划书
  • 做自己的网站可以赚钱吗公司注册网站方法
  • 珠海营销营网站建设做期货主要看哪个网站
  • 主题资源网站创建时 如何突出设计的特点写轮眼python代码
  • 视频网站开发文档魔智科技logo在线设计
  • 刷网站百度关键词软件个人网站制作方法
  • 有网站可以接设计的单子做吗深圳网站建设选哪家
  • Java学习之旅第一季-25:一维数组
  • 盐城网站开发公司网络营销师培训学校
  • 分析对手网站的优化方法网站直播怎么做
  • 昭通网站seo红圈工程项目管理软件
  • 做网站私活在哪接国外做家装的网站有哪些
  • 太仓企业网站建设公司wordpress stop