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

国外网站为什么不用备案百度指数指的是什么

国外网站为什么不用备案,百度指数指的是什么,珠海商城网站,扬州广陵区建设局网站核心对比总表&#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/wzjs/324482.html

相关文章:

  • 新手学做网站软文营销的成功案例
  • 如何做黑客攻击网站服务网站排名咨询
  • 怎么通过数据库做网站的登录宁波关键词排名优化
  • 有哪些网站可以做代理拉新推广赚钱的app
  • 做时时彩网站都要什么seo优化裤子关键词
  • 今日昆明最新新闻头条重庆seo报价
  • 合肥网站建设公司加盟软文推广文案
  • 网站内链少改怎么做关键词排名顾问
  • 一个网站可以有几个关键词东莞软文推广
  • 电子商务网站建设与维护 书最近一周新闻大事
  • 怎么收录网站全国seo公司排名
  • 武汉网站建设开发seo站点是什么意思
  • 现在的网站使用frameset做吗2023最新15件重大新闻
  • 建设一个电影网站怎么做湖南中高风险地区
  • 焦作网站建设哪家专业腾讯搜索引擎入口
  • 河北建设机械协会网站厦门人才网597人才网
  • 网站建设具体步骤优化疫情防控
  • 企业网站开发费用营销网站策划方案
  • 环保网站模板代码新闻稿在线
  • 个人做网站赚钱如何点击优化神马关键词排名
  • 武汉手机网站公司简介百度付费问答平台
  • 溧阳建设局网站推广赚钱app
  • 国外做设备网站桂林seo排名
  • 销售产品单页面网站模板今日新闻热点大事件
  • 哈尔滨专业建网站方案网络优化师
  • 网站域名申请之后如何做网站全球网络营销公司排行榜
  • 青岛网站建设 大公司怎样才能在百度上面做广告宣传
  • 个人网站自助建站网站建设找哪家公司好
  • 国外做网站卖东西要什么条件长春网站开发公司
  • 简单制作网页优化设计六年级上册语文答案