Java中实现两个线程交替运行的方法

 更新时间:2021年12月02日 10:04:00   作者:java265  
这篇文章主要介绍了Java中实现两个线程交替运行的方法,本文将给大家分享操作流程,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

今天笔者收到老师的一个题目,让我准备两个流程,依次实现输出以下信息

如:

线程A 打印 字母a ,线程B 打印数字1

线程A 打印 字母b ,线程B 打印数字2

线程A 打印 字母c ,线程B 打印数字3

线程A 打印 字母d ,线程B 打印数字4

。。。

依次打印完毕26个字母和26个数字

,输出效果为:

a1b2c3...z26

下文笔者就将具体的实现思路展示如下:

1.将借助多线程的wait方法

2.借助一个外部变量

package com.java265.other;

public class Test6 {
    /*
     * 两个线程 一个线程输出 a b c d e f 一个线程输出 1 2 3 4 5 交叉输出 a 1 b 2 c 3
     */
    static boolean flag = false;
    public static void main(String[] args) {

        Object o = new Object();



        Thread t1, t2;

        t1 = new Thread(() -> {
            for (int i = 0; i < 26; ) {
                synchronized (o) {
                    if (!flag) {
                        char t = (char) (i + (int) 'a');
                        System.out.print(t);
                        i++;
                    try {
                            o.wait();
                        } catch (InterruptedException e) {
                        e.printStackTrace();
                        }
                        flag = false;
                        o.notifyAll();

                    }

                }

            }


        });

        t2 = new Thread(() -> {
            for (int i = 1; i <= 26;) {
                synchronized (o) {

                    if (flag) {
                        System.out.print(i);
                        i++;
                    try {
                            o.wait();
                    } catch (InterruptedException e) { 
                        e.printStackTrace();
                    }
                    }

                    flag = true;
                    o.notifyAll();
                }
            }

        });

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

    }
}

参照资料:

http://java265.com/JavaMianJing/202112/16383980681974.html

到此这篇关于Java中实现两个线程交替运行的流程的文章就介绍到这了,更多相关Java线程交替运行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java的JDBC编程使用之连接Mysql数据库

    Java的JDBC编程使用之连接Mysql数据库

    这篇文章主要给大家介绍了关于Java的JDBC编程使用之连接Mysql数据库的相关资料,JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,需要的朋友可以参考下
    2023-12-12
  • RestTemplate文件上传下载与大文件流式下载

    RestTemplate文件上传下载与大文件流式下载

    这篇文章主要为大家介绍了RestTemplate文件上传下载与大文件流式下载的使用方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步
    2022-03-03
  • Java实现蓝桥杯数独游戏的示例代码

    Java实现蓝桥杯数独游戏的示例代码

    这篇文章主要介绍了Java实现蓝桥杯数独游戏的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • spring boot项目实战之实现与数据库的连接

    spring boot项目实战之实现与数据库的连接

    在我们日常的开发过程中,肯定不可避免的会使用到数据库以及SQL 语句,下面这篇文章主要给大家介绍了关于spring boot项目实战之实现与数据库连接的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • MyBatis-Plus 查询指定字段的实现

    MyBatis-Plus 查询指定字段的实现

    这篇文章主要介绍了MyBatis-Plus 查询指定字段的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • MyBatis 和 jeesite多表查询示例详解

    MyBatis 和 jeesite多表查询示例详解

    这篇文章主要介绍了MyBatis 和 jeesite多表查询,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 向量数据库之如何使用Elasticsearch实现向量数据存储与搜索

    向量数据库之如何使用Elasticsearch实现向量数据存储与搜索

    这篇文章主要介绍了向量数据库之如何使用Elasticsearch实现向量数据存储与搜索,在向量函数的计算过程中,会对所有匹配的文档进行线性扫描,因此,查询预计时间会随着匹配文档的数量线性增长,本文给大家讲解的非常详细,需要的朋友参考下吧
    2023-06-06
  • 解决Swagger2返回map复杂结构不能解析的问题

    解决Swagger2返回map复杂结构不能解析的问题

    这篇文章主要介绍了解决Swagger2返回map复杂结构不能解析的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java http加签、验签实现方案详解

    Java http加签、验签实现方案详解

    这篇文章主要介绍了Java http加签、验签实现方案详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-07-07
  • Springboot整合JPA配置多数据源流程详解

    Springboot整合JPA配置多数据源流程详解

    这篇文章主要介绍了Springboot整合JPA配置多数据源,JPA可以通过实体类生成数据库的表,同时自带很多增删改查方法,大部分sql语句不需要我们自己写,配置完成后直接调用方法即可,很方便
    2022-11-11

最新评论