Java多线程——并发和并行、实现方法

这篇具有很好参考价值的文章主要介绍了Java多线程——并发和并行、实现方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多线程

Java多线程——并发和并行、实现方法,Java,java,开发语言


并发和并行

Java多线程——并发和并行、实现方法,Java,java,开发语言


实现方法

Java多线程——并发和并行、实现方法,Java,java,开发语言

代码演示

方式一

package com.qiong.thread1;

public class MyThread extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println(getName() + "Hello World");
        }
    }
}
package com.qiong.thread1;

public class ThreadDemo1 {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        MyThread t2 = new MyThread();

        t1.setName("线程一");
        t2.setName("线程二");

        //开启线程
        t1.start();
        t2.start();

        /*
        线程二Hello World
        线程二Hello World
        线程二Hello World
        线程一Hello World
        线程一Hello World
        线程二Hello World
        线程一Hello World
         */
    }
}

方式二

package com.qiong.thread2;

public class MyRun implements Runnable{

    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            Thread thread = Thread.currentThread();

            System.out.println(thread.getName() + "Hello World");
        }
    }
}
package com.qiong.thread2;

public class ThreadDemo {
    public static void main(String[] args) {
        MyRun mr = new MyRun();

        Thread t1 = new Thread(mr);
        Thread t2 = new Thread(mr);

        t1.setName("线程1");
        t2.setName("线程2");

        t1.start();
        t2.start();

        /*
        线程二Hello World
        线程二Hello World
        线程二Hello World
        线程一Hello World
        线程一Hello World
        线程二Hello World
        线程一Hello World
         */
    }
}

方式三文章来源地址https://www.toymoban.com/news/detail-792700.html

package com.qiong.thread3;

import java.util.concurrent.Callable;

public class MyCallable implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        //求1~100之间的和
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        return sum;
    }
}
package com.qiong.thread3;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class ThreadDemo {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        MyCallable mc = new MyCallable();
        FutureTask<Integer> ft = new FutureTask<>(mc);
        Thread t1 = new Thread(ft);
        t1.start();

        Integer result = ft.get();
        System.out.println(result);//结果:5050
    }

}

到了这里,关于Java多线程——并发和并行、实现方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java|多线程与高并发】线程的中断的两种方法

    线程中断是指在一个线程执行的过程中,强制终止该线程的执行。虽说是中断,但本质上是让run方法快点执行完,而不是run方法执行到一半,强制结束. 本文主要介绍线程中断的两种方法 看下面这段代码: 运行结果: 看下面这张图: 在这段代码中,定义了一个 flag 的标志位,在 线程

    2024年02月08日
    浏览(44)
  • 【Java|多线程与高并发】wait和notify方法详解

    在Java多线程环境中,线程之间是抢占式执行的,线程的调度是随机的.这就很难受了. 在很多情况下我们希望线程以我们想要的顺序来执行. 这就需要 wait 和 notify 这两个方法 首先是 wait 方法 wait是 Object 类的方法,而Java中的类都是间接或直接继承于Object类. 因此只要是类的实例都可

    2024年02月10日
    浏览(56)
  • for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行java的实现方式

    for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行 方式一 使用 CountDownLatch 在 Java 中,您可以使用 CountDownLatch 来实现主线程等待子线程执行完成的功能。CountDownLatch 是一个同步工具类,它允许一个或多个线程等待其他线程完成操作后再继续执行。 具

    2024年02月11日
    浏览(44)
  • 【JAVA开发面试】如何处理并发访问如何进行代码的单元测试Java多线程编程消息中间件设计模式技术难题是如何解决的

    【 点我-这里送书 】 本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题 中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明

    2024年02月03日
    浏览(52)
  • 并发,并行,线程与UI操作

    并行和并发是计算机领域中两个相关但不同的概念。 并行(Parallel)指的是同时执行多个任务或操作 ,它依赖于具有多个处理单元的系统。在并行计算中,任务被分成多个子任务,并且这些子任务可以同时在不同的处理单元上执行,从而加速整体的计算速度。并行计算能够充

    2024年01月21日
    浏览(40)
  • 多线程并发和多任务并行的小结

    一、多线程并行的一点小结 1.无论是thread::spawn还是tokio::spawn,都是创建一个线程或者任务去执行闭包的函数体。thread::spawn接受一个闭包作为参数,并返回一个 JoinHandle,其中 T 是闭包的返回类型。创建的新线程将在后台运行,并执行闭包中的代码。 2.多线程并行:其他的高级

    2024年02月10日
    浏览(44)
  • Java多线程与并发

    序号 地址 1 计算机网络核心 2 数据库相关 3 Redis 4 Linux相关 5 JVM的内容 6 GC相关的 7 Java多线程与并发 8 Java多线程与并发-原理 9 Java常用类库与技巧 10 Java框架-Spring 1、JDK版本的选择 选择JDK8、JDK11进行讲解的原因:Oracle长期支持 2、进程和线程的区别 进程和线程的由来 3、进程与

    2024年02月10日
    浏览(42)
  • Java高并发系列: 使用wait - notify实现高效异步方法

    在项目开发中, 通常会有异步执行操作, 例如: 提交一个异步清空一系列数据库中ID = ${_id} 的记录, 这个时候通常的做法是主线程将任务添加到一个异步队列中, 后台维护一个线程不断地 循环 扫描这个队列, 如果有需要执行的任务, 则执行相应的逻辑. 如下图所示: 代码实现如下

    2024年02月09日
    浏览(54)
  • JAVA的多线程及并发

    继承 Thread 类; 实现 Runnable 接口; 实现 Callable 接口通过 FutureTask 包装器来创建 Thread 线程; 使 用 ExecutorService 、 Callable 、 Future 实 现 有 返 回 结 果 的多 线 程 ( 也 就 是 使 用 了 ExecutorService 来管理前面的三种方式)。 1、使用退出标志,使线程正常退出,也就是当 run

    2024年03月13日
    浏览(50)
  • Java并发(四)----线程运行原理

    1.1 栈与栈帧   Java Virtual Machine Stacks (Java 虚拟机栈 JVM) 我们都知道 JVM 中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟机就会为其分配一块栈内存。 每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存 每个

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包