对线程的创建

一,概括  

二,线程构建方式一(继承Thread类)

三,案例

父类:

package Duoxiancheng;public abstract class Name {public static void main(String[] args) {//3,创建一个Thread线程类对象Thread t1 =new ZHiLeiA();//4,启动线程t1.start();for (int i = 0; i < 4; i++) {System.out.println("软件");}}}

 子类:

package Duoxiancheng;
/*
1.让子类继承Thread线程类
* */public class ZHiLeiA extends Thread {//2,必须重写父类的run方法;@Overridepublic void run(){for (int i = 0; i <4 ; i++) {System.out.println("星火666");}}
}

注意事项:

 四,线程构建方式二(实现Runnable接口)

五,案例

 父类:

package Duoxiancheng;public class Name2 {public static void main(String[] args) {//3,创建任务对象Runnable r =new ZhiLieB();//4,把任务对象处理new Thread(r).start();for (int i = 0; i < 5; i++) {System.out.println("主线程运行"+i);}}
}

子类:

package Duoxiancheng;
//1,实现Runnable接口
public class ZhiLieB implements Runnable {//2,重写run方法@Overridepublic void run() {//执行任务for (int i = 0; i < 5; i++) {System.out.println("次线程运行"+i);}}
}

注意事项:

六,线程创建方式二的匿名内部类(简化写法) 

七,案例:
 

package Duoxiancheng;public class Name2_2 {public static void main(String[] args) {//1,直接创建Runnable接口的匿名内部类
//    Runnable r =new ZhiLieB(){
//     @Override
//     public void run() {
//        //执行任务
//         for (int i = 0; i < 5; i++) {
//             System.out.println("次线程运行"+i);
//         }
//     }
//    };
//    new Thread(r).start();
//        for (int i = 0; i <5 ; i++) {
//            System.out.println("主线程运行"+i);
//        }
//    }//2,简化一
//    new Thread(new Runnable() {
//        @Override
//        public void run() {
//            for (int i = 0; i < 5; i++) {
//                System.out.println("次线程运行"+i);
//            }
//        }
//    }).start();
//        for (int i = 0; i <5 ; i++) {
//        System.out.println("主线程运行"+i);
//    }//3,简化二new Thread(()->{for (int i = 0; i < 5; i++) {System.out.println("次线程运行"+i);}}).start();for (int i = 0; i <5 ; i++) {System.out.println("主线程运行"+i);}}
}

八,线程构建方式三(实现Gallable接口)

九,案例

 父类:

package Duoxiancheng;import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;public class Name3 {public static void main(String[] args) throws ExecutionException, InterruptedException {//3,创建一个callable的对象Callable<String> call =new ZhiLieC(100);//4,封装对象FutureTask <String>f1=new FutureTask<>(call);//5,交给线程对象new Thread(f1).start();//6,获取线程执行后的结果String rs =f1.get();System.out.println(rs);}
}

子类:

package Duoxiancheng;import java.util.concurrent.Callable;
//1,实现接口
public class ZhiLieC implements Callable<String> {private int n;public ZhiLieC(int n){this.n=n;}//2,重写call方法@Overridepublic String call() throws Exception {//描述线程任务,返回结果//例:求1-n的和返回int sum =0;for (int i = 1; i <=n ; i++) {sum += i;}return "线程所求之和为"+sum;}
}

注意事项:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/207496.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GIT实践与常用命令---回退

实践场景 场景1 回退提交 在日常工作中&#xff0c;我们可能会和多个同事在同一个分支进行开发&#xff0c;有时候我们可能会出现一些错误提交&#xff0c;这些错误提交如果想撤销&#xff0c;可以有两种解决办法:回退( reset )、反做(revert) keywords&#xff1a;reset、rev…

Python 提高篇学习笔记(一):深拷贝和浅拷贝

文章目录 一、什么是对象的引用二、深拷贝和浅拷贝2.1 浅拷贝(Shallow Copy)2.2 深拷贝(Deep Copy)2.3 copy.copy和copy.deepcopy的区别 一、什么是对象的引用 在 Python 中&#xff0c;对象的引用是指变量指向内存中某个对象的地址或标识符。当你创建一个新的对象(比如一个整…

Unsupervised MVS论文笔记

Unsupervised MVS论文笔记 摘要1 引言2 相关工作3 实现方法 Tejas Khot and Shubham Agrawal and Shubham Tulsiani and Christoph Mertz and Simon Lucey and Martial Hebert. Tejas Khot and Shubham Agrawal and Shubham Tulsiani and Christoph Mertz and Simon Lucey and …

如何使用技术SEO来优化评论

你在网上购买吗&#xff1f;我的意思是&#xff0c;在当今时代&#xff0c;谁不这样做&#xff1f;作为买家&#xff0c;无论您想购买什么&#xff0c;您都了解全面和高质量评论的价值。这是您在决定是否购买产品时考虑的重要因素。 这就是为什么许多人在网上购物之前使用评论…

Python中用requests时遇到的错误警告解决方案

最近&#xff0c;我在Python 2.7.6&#xff08;Ubuntu 14.04.2 LTS&#xff09;环境中将requests库的版本从2.5.3升级到2.6.0&#xff0c;却遇到了’A true SSLContext object is not available’警告。每当我在Python 2.7.6环境中尝试使用requests库访问’github’时&#xff…

实时错误’-2147217887‘多步OLB DB 操作产生错误。如果可能,请检查OLE DB状态值

目录 背景问题问题分析问题解决 错误解决与定位技巧总结 背景 仍旧是学生信息管理系统的问题&#xff0c;当时做的时候没发现这么多问题呢&#xff0c;只能说明一件事&#xff0c;做的时候没有站在用户的角度考虑需求&#xff0c;设置了什么内容&#xff0c;就按照设置好的去测…

20k阿里面经跟18k腾讯面经(附答案)

阿里面经 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求…

三、防火墙-源NAT

学习防火墙之前&#xff0c;对路由交换应要有一定的认识 源NAT基本原理1.1.NAT No-PAT1.2.NAPT1.3.出接口地址方式&#xff08;Easy IP&#xff09;1.4.Smart NAT1.5.三元组 NAT1.6.多出口场景下的源NAT 总结延伸 ——————————————————————————————…

个人博客项目 - 测试报告

文章目录 一、项目背景二、测试报告功能测试1.编写测试用例2.登录测试3.编写文章测试4.查看文章测试5.删除文章测试7.注销登录测试 自动化测试性能测试1.VUG2.进行场景设计3.生成性能测试报告 总结 本文开始 一、项目背景 通过学习测试相关的知识&#xff0c;动手实践并测试一…

2023 年 亚太赛 APMCM ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 以五一杯 A题为例子&#xff0c;以下是咱们做的一些想法呀&am…

【DevOps】Git 图文详解(八):后悔药 - 撤销变更

Git 图文详解&#xff08;八&#xff09;&#xff1a;后悔药 - 撤销变更 1.后悔指令 &#x1f525;2.回退版本 reset3.撤销提交 revert4.checkout / reset / revert 总结 发现写错了要回退怎么办&#xff1f;看看下面几种后悔指令吧&#xff01; ❓ 还没提交的怎么撤销&#x…

二十二、数组(4)

本章概要 随机生成泛型和基本数组 随机生成 我们可以按照 Count.java 的结构创建一个生成随机值的工具&#xff1a; Rand.java import java.util.*; import java.util.function.*;import static com.example.test.ConvertTo.primitive;public interface Rand {int MOD 10_0…