网站建设的方案描述对于营销型网站建设很重要飘红效果更佳

张小明 2026/1/14 16:02:02
网站建设的方案,描述对于营销型网站建设很重要飘红效果更佳,漳浦县网站建设,中山小型网站建设公司目录 1.线程的概念 2.进程和线程的对比 3.线程创建的三种方式 1)继承Thread类 2)实现Runnable接口 3)实现Callable接口 三种方法的执行流程 1.线程的概念 线程是程序执行流的最小单位#xff0c;是进程中的一个独立执行单元。一个进程可以包含多个线程#xff0c;这些…目录1.线程的概念2.进程和线程的对比3.线程创建的三种方式1)继承Thread类2)实现Runnable接口3)实现Callable接口三种方法的执行流程1.线程的概念线程是程序执行流的最小单位是进程中的一个独立执行单元。一个进程可以包含多个线程这些线程共享进程的资源但各自独立执行。2.进程和线程的对比3.线程创建的三种方式1)继承Thread类/** * 第一种创建线程的方式继承Thread类 * 优点代码简单 * 缺点单继承的局限性不能再继承其他的类 */ public class Demo1 { public static void main(String[] args) { Thread myThread new MyThread(); myThread.start(); for (int i 0; i 6; i) { System.out.println(main方法输出 i); } } } class MyThread extends Thread { public void run() { for (int i 0; i 6; i) { System.out.println(子线程输出: i); } } }继承关系MyThread extends Thread重写方法必须重写 run() 方法启动方式创建对象后调用 start() 方法执行机制start() 会启动新线程同时调用 run() 方法直接调用 run() 只会普通方法调用不会创建新线程输出结果特点主线程和子线程的输出会交替出现顺序不确定2)实现Runnable接口/** * 第二种创建线程的方式实现Runnable接口 * 优点只是实现了接口可以继承其他类实现其他接口拓展性强 * 缺点需要多一个Runnable对象 */ public class Demo2 { // 目标掌握多线程的第二种创建方式实现runnable接口 public static void main(String[] args) { //3.创建线程对象要把这个线程任务类包装成线程类把这个对象交给线程去处理 Thread MyRunnable new Thread(new MyRunnable()); MyRunnable.start(); for (int i 0; i 6; i) { System.out.println(Main方法输出: i); } } } //1.定义一个线程任务类来实现Runnable接口 class MyRunnable implements Runnable { //2.重写run方法执行线程任务 Override public void run() { for (int i 0; i 6; i) { System.out.println(子线程输出: i); } } }实现关系MyRunnable implements Runnable重写方法必须实现 run() 方法线程创建需要将 Runnable 对象传给 Thread 构造器优点避免单继承限制适合多个线程执行相同任务代码结构更清晰简化写法1.匿名内部类/** * 线程创建的第二种方法的匿名内部类写法 */ public class Demo3 { public static void main(String[] args) { // 使用匿名内部类创建Runnable对象 Thread t1 new Thread(new Runnable(){ Override public void run() { for (int i 0; i 6; i) { System.out.println(子线程输出: i); } } }); t1.start(); for (int i 0; i 6; i) { System.out.println(Main方法输出: i); } } }2.lambda表达式// Java 8 可以使用Lambda表达式进一步简化 public class Demo2_Lambda { public static void main(String[] args) { // 使用Lambda表达式创建Runnable对象 Thread thread new Thread(() - { for (int i 0; i 6; i) { System.out.println(子线程输出: i); } }); thread.start(); for (int i 0; i 6; i) { System.out.println(Main方法输出: i); } } }3)实现Callable接口import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; /** * 前面两种创建方式重写的run方法都不能直接返回结果 * JDK5.0提供了Callable接口和FutureTask类来实现 * 第三种创建方式 */ public class Demo4 { public static void main(String[] args) { // 创建Callable接口的实现类对象 CallableString c new MyCallable(100); // 4. 把Callable对象封装成真正的线程任务对象FutureTask对象 FutureTaskString ft new FutureTask(c); /** * FutureTask对象的作用 * a. 本质是一个Runnable线程任务对象可以交给Thread线程对象处理 * b. 可以获取线程执行完毕后的结果 */ // 5. 把FutureTask对象作为参数传递给Thread对象 Thread thread new Thread(ft); thread.start(); // 启动线程 // 创建第二个线程 CallableString c1 new MyCallable(300); FutureTaskString ft1 new FutureTask(c1); Thread thread1 new Thread(ft1); thread1.start(); try { // 获取第一个线程的执行结果 // get()方法会阻塞直到线程执行完成并返回结果 System.out.println(ft.get()); } catch (Exception e) { e.printStackTrace(); } try { // 获取第二个线程的执行结果 System.out.println(ft1.get()); } catch (Exception e) { e.printStackTrace(); } } } // 1. 定义实现类来实现Callable接口 // 泛型参数表示返回值的类型 class MyCallable implements CallableString { private Integer n; // 构造方法传入计算范围 MyCallable(Integer n) { this.n n; } // 2. 重写call方法有返回值可以抛出异常 Override public String call() throws Exception { Integer sum 0; for (int i 1; i n; i) { sum i; } return 1..... n 的输出结果为 sum; } }实现关系MyCallable implements CallableString重写方法必须实现 call() 方法关键区别call() 方法可以有返回值call() 方法可以抛出异常run() 方法没有返回值不能抛出检查异常执行流程Callable实现类 → FutureTask包装 → Thread包装 → start()启动 → get()获取结果FutureTask 的作用适配器模式将 Callable 转换成 Runnable结果容器存储异步计算结果阻塞获取get() 方法会等待线程执行完成三种方法的执行流程// 方式1继承Thread Thread子类 → start() → JVM调用run() // 方式2实现Runnable Runnable实现类 → 传给Thread → start() → JVM调用run() // 方式3实现Callable Callable实现类 → FutureTask包装 → 传给Thread → start() → get()获取结果小结优先选择实现 Runnable 接口配合 Lambda 表达式需要返回值时使用 Callable FutureTask避免直接继承 Thread 类合理使用线程池管理线程资源
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人不能建设论坛网站怎么办沈阳工程就业信息网

Kotaemon GitHub知识库同步工具介绍 在企业知识管理日益复杂的今天,一个常见的痛点是:技术文档明明写得清清楚楚,但当工程师遇到问题时,却总要花大量时间在多个仓库、Wiki页面和内部论坛之间来回翻找。更糟的是,一旦文…

张小明 2026/1/12 4:38:23 网站建设

在哪做网站建设门头沟高端网站建设

HunyuanOCR模型真实性能评测:轻量背后的多模态革新 在智能文档处理的战场上,OCR早已不是简单的“图像转文字”工具。当企业面对成千上万张模糊发票、跨国合同、手写表单时,传统OCR系统常因模块割裂、规则僵化而频频出错——检测框不准&#…

张小明 2026/1/11 14:49:46 网站建设

白城网站建设哪家专业四川成都网站制作公司

第一章:私有化 Dify 日志分析概述在企业级 AI 应用部署中,Dify 作为一个支持可视化编排与模型管理的低代码平台,其私有化部署版本被广泛应用于数据安全要求较高的场景。日志系统作为可观测性的核心组成部分,承担着监控运行状态、排…

张小明 2026/1/11 16:20:34 网站建设

品牌网站设计建设建设部网站怎么查询企业业绩

HOScrcpy终极指南:鸿蒙远程真机调试的完整解决方案 【免费下载链接】鸿蒙远程真机工具 该工具主要提供鸿蒙系统下基于视频流的投屏功能,帧率基本持平真机帧率,达到远程真机的效果。 项目地址: https://gitcode.com/OpenHarmonyToolkitsPlaz…

张小明 2026/1/12 5:15:03 网站建设

传奇网站模块下载2345网址导航设为主页

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个基于Coze开源框架的快速原型工具,用户只需输入简单的自然语言描述,即可自动生成可运行的AI应用原型(如情感分析工具或图像识别应用&…

张小明 2026/1/12 19:20:15 网站建设

做网站建设的企业还有那些上海工商网上公示系统

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式学习页面,包含5个逐步复杂的Python sleep示例:1) 简单倒计时 2) 文本进度条 3) 闪烁LED效果 4) 轮询检查文件变化 5) 多线程协同打印。每个示…

张小明 2026/1/13 8:02:22 网站建设