java 基础教材中多线程一章 我觉得 难 的一个问题。
首先 要用多线程实现 。 因此要有类继承 Thread 或者 实现 Runable。

由于 每个线程 的 操作数 不一样 我生成了十个不同对象的线程。

public class HomeWork6_4_1 {public static void main(String[] args) throws InterruptedException {for(int i=0; i<10; i++) {Add add = new Add(i*10+1, i*10+10);add.start();}Thread.sleep(100); // 休眠 一会 以便 其他线程执行完 不然 主线程执行到输出语句时 其他线程可能还未执行完毕System.out.println(Add.sub);}}class Add extends Thread{static Object object = new Object(); // 同步代码块锁static int sub;                            // 类属性 用于保存线程相加结果private int min;       // 传过来数据的 最小值 private int max;      // 最大值public Add(int min, int max) {this.min = min;        // 对象属性赋值this.max = max;       // 对象属性赋值}public void run() {int res = 0;for(int i=min; i<=max; i++) {res += i;   // 执行 从 min 加到 max}//       同步代码块 同一时刻只有一个 线程可以 调用该代码块内内容synchronized (object) {System.out.println(Thread.currentThread().getName() + "正在将结果附上" + res);sub += res;}}}

当然 使用 Thread.sleep(100)这样的方式 只是让main线程 休眠一会 并不能真正保证 其他线程 执行 完毕 可以 使用 .join()插队

public class HomeWork6_4_1 {public static void main(String[] args) throws InterruptedException {for(int i=0; i<10; i++) {Add add = new Add(i*10+1, i*10+10);add.start();add.join();}System.out.println(Add.sub);}}class Add extends Thread{static int sub;                          // 类属性 用于保存线程相加结果private int min;       // 传过来数据的 最小值 private int max;      // 最大值//    注 如果设置 同步方法的 话  一定 要 设置成静态方法  因为 生成了十个 不同的 对象 使用对象方法的话 锁是该对象 每个都 不一样的 也就没用了
//  静态方法的 锁是 该类 synchronized static void addres(int num) {System.out.println(Thread.currentThread().getName() + "正在将结果附上" + num);sub += num;}public Add(int min, int max) {this.min = min;       // 对象属性赋值this.max = max;       // 对象属性赋值}public void run() {int res = 0;for(int i=min; i<=max; i++) {res += i;   // 执行 从 min 加到 max}addres(res); // 调用同步方法}}

每个线程 都插队 也就是 所有其他线程执行完 main 线程 才能够执行
该作业考量 的 也许有 线程执行顺序 。。。 即可以通过设置线程的优先级 main的优先级是 5 大概 可以将 生成的对象线程优先级 设置成 10 这样根据系统不同不一定有效

通用方法 就是 .join() 了

java 多线程。 编写10个线程,第一个线程从1加到10,第二个线程第11加到20,。。。第10个线程从91加到100.最够把10个线程结果相加相关推荐

  1. Java多线程编写简易飞机大战(一)

    ** Java多线程编写简易飞机大战(一) ** 利用多线程编写飞机大战,主要有3个关键: ①继承Thread类,重写run方法: ②线程工作代码在run方法中写: ③启动时,调用线程对象的start ...

  2. 14. 编写递归函数,在第一行打印输出1个1,在第二行输出2个2,。。。,在第n行输出n个n。

    编写递归函数,在第一行打印输出1个1,在第二行输出2个2,...,在第n行输出n个n. #include <stdio.h> void print(int n) {if(n==1) pri ...

  3. (编写两个线程第一个计算2-10万的质数,第二个10万-20万的质数)

    public class Main3 extends Thread{int i,j,x=0;Main3(int m,int n){this.i = m;this.j = n;}public void ...

  4. java多线程之线程创建和状态

    一.概述 1.上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现 这个机制.时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切 换线 ...

  5. Java多线程学习记录

    什么是多线程? 首先操作系统有一种能力叫多任务,看起来可以在同一时间运行多个程序,实际上操作系统会为每个进程分配CPU时间片,给人并行处理的感觉. 多线程在更低一层扩展了多任务的概念:单个程序看起来在 ...

  6. java多线程_Java多线程

    java多线程 Multithreading in Java is a very important topic. I have written a lot about Threads in Java ...

  7. 多线程java_由浅入深地介绍Java多线程,让你如何快速进入Java多线程的学习

    多线程是Java语言很重要的一个组成部分,今日稍微整理整理,若有缺失不足错误之处,还望各位指出 读者对象 本篇适合所有Java程序员阅读,尤其适合以下读者: Java多线程开发者 Java并发开发师 ...

  8. Java - 多线程

    Java多线程 章节目录 Java多线程 一. 基本概念 二. 创建方式 1. 方式一:继承Thread类 2. 方式二:实现Runnable接口 3. 方式三:实现Callable接口 4. 方式四 ...

  9. JAVA多线程作业-多人买票

    JAVA多线程作业 作业要求: 1. 假设现在有一个售票员进行售票,票价为5元,初始状态:票数不限,票售员手中有1张10元钱: 2. 每来一个顾客买票,相当于是创建一个线程,注意,此时顾客共享的资源是 ...

最新文章

  1. win10找不到局域网Linux,技术员解惑win10系统访问不了NAS和linux网络共享的详细办法...
  2. TypeScript 书写 .d.ts 文件的一些注意事项
  3. 算法 --- 归并排序的js实现
  4. win7 vs2015配置qt5.11
  5. 8.16 记忆增强神经网络:MANN、神经网络图灵机
  6. 贵州全国计算机二级报名官网入口,2019年3月贵州全国计算机二级考试报名入口已开通...
  7. 计算机桌面的图标怎么删除,桌面图标有蓝底怎么去掉,教您去掉电脑桌面图标蓝底的方法...
  8. XCELSIUS例子---柱形图部件的使用
  9. git 创库命令使用
  10. 有效沟通bic法则_南宁人际沟通培训
  11. SSH协议弱加密算法漏洞的利用及复现(中间人攻击)
  12. C#-Excel导入工资条群发邮箱
  13. 框架指针省略(Frame Pointer Omission)(FPO)
  14. 5G爆发前夜,谷歌微软争相豪赌的云游戏厉害在哪?
  15. 原理图中的电阻旁边有个”NC“,什么意思?
  16. kaggle糖尿病视网膜病变失明检测top5解决方案
  17. 2022嵌入式工程师面经(2023年1月更新)
  18. 利用快手抖音做小吃培训,年入100000+
  19. Hibernate课堂笔记
  20. 1.2 原子物理学——电子的普线图、能级图,能量吸收和共振

热门文章

  1. 虚拟病毒分析与清除方法
  2. contentType属性
  3. 如何实现一个简单好用的roadmap制作工具
  4. vs2019 安装完成没有反应_vs2019安装失败解决方法
  5. EAST:一种高效准确的场景文本检测器
  6. python旋转矩阵90°_用Python旋转矩阵
  7. Python技能树,新版题库,值得一键三连~~
  8. 基金韭菜们的自我修养:程序员上班摸鱼在VSCode看股票 基金数据!!!当个合格的韭菜
  9. element 默认值
  10. CentOS7.4中Postfix邮件服务器的搭建(一)-----环境配置及简单搭建