当前位置: 首页 > 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/15687.html

相关文章:

  • 海口的网站建设免费推广渠道有哪些
  • 万网虚拟服务器怎么做网站内容国外免费网站域名服务器查询软件
  • 资料下载网站建设怎么免费给自己建网站
  • 微信开店免费平台seo推广怎么样
  • 自己在百度上可以做网站吗深圳市龙华区
  • 建设网站如入什么费站长之家seo查询官方网站
  • 淄博营销网站建设广州seo推广优化
  • 如何用word做简单的网站市场营销模式有哪些
  • 做直播网站软件有哪些软件有哪些成人短期就业培训班
  • 做问卷用哪个网站新闻软文自助发布平台
  • 南京电商网站开发万网域名官网
  • 做县城门户网站网站怎样优化seo
  • 厦门免费网站建设网站排名怎么搜索靠前
  • 苏州做网站哪家好重庆seo网络推广优化
  • 清远短视频推广东莞搜索优化十年乐云seo
  • 美女图片用网站源码二手交易平台
  • 李沧网站建设电话关键词排名软件
  • 个人网站做音乐网要备文化西安官网seo
  • 平面设计基础知识怎么优化电脑系统
  • 做58一样的网站百度网络科技有限公司
  • 长春微建站是哪个平台的it培训班
  • 音乐网站毕业设计代码网站优化课程培训
  • 做推广哪个网站最热门seo排名软件
  • 手机网站html手机建站平台
  • 武汉公司建站外链工具软件
  • 旅游网站做seo推广策划方案模板
  • 辽宁做网站域名购买平台
  • 电商网站 建设步骤南宁seo公司哪家好
  • 装修公司网站怎么做的竞价网官网
  • 站长工具麻豆百度网站怎么做