首页 > 其他分享 >两个线程交替写1~100

两个线程交替写1~100

时间:2024-11-07 14:45:14浏览次数:3  
标签:cnt Thread start 交替 test 线程 print 100 odd

 

package Test;

public class PrintNumber {

    private int status = 1 ,cnt = 1;

    synchronized void print_odd() {
        while(cnt<100) {
            while (status == 2) {
                try {
                    this.wait();
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }

            System.out.printf("odd %d\n", cnt++);
            status = 2;
            notify();
        }
    }
    synchronized void print_even(){
        while (cnt<100){
            while (status == 1) {
                try {
                    this.wait();
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
            System.out.printf("even %d\n", cnt++);
            status = 1;
            this.notify();
        }
    }



    public static void main(String[] args) {
        PrintNumber test = new PrintNumber();

        Thread t1  = new Thread(()-> {
           test.print_odd();
        });

        Thread t2 = new Thread(()-> {
            test.print_even();
        });
        t1.start();
        t2.start();


    }
}

 

标签:cnt,Thread,start,交替,test,线程,print,100,odd
From: https://www.cnblogs.com/towboa/p/18532212

相关文章

  • Java并发编程 --- 线程安全
    为什么会有线程安全问题?为什么会存在线程安全问题呢?那我们先来探究一下JMM(Java内存模型)线程与JMM每个线程都有自己的工作内存,它会存储主内存中变量的Copy值,再对变量进行操作的时候,也是操作工作内存中变量的Copy值。当线程Dead(生命周期结束)时,才会将自己工作内存中的数据同......
  • AI绘画本地版ComfyUI终于来了!(一键整合包,免安装更方便)附各种工作流及模型文件1000张工
    前言:comfyUI自从面世以来,就以一种潜力股的姿态快速流行了起来,越来越多的小伙伴开始使用comfyUI。也许你一开始会被comfyUI密密麻麻的“线路”吓到,但其实comfyUI也没那么复杂,并且好处多多。今天给大家分享一下AI绘画进阶工具ComfyUI,作为StableDiffusionWebUI的进阶版工......
  • 多线程 ui 进度条
    usingSystem;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows.Forms; namespaceWindowsFormsApp1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbu......
  • 别再被多线程搞晕了!一篇文章轻松搞懂 Linux 多线程同步!
    前言大家有没有遇到过,代码跑着跑着,线程突然抢资源抢疯了?其实,这都是“多线程同步”在作怪。多线程同步是个老生常谈的话题,可每次真正要处理时还是让人头疼。这篇文章,带你从头到尾掌握Linux的多线程同步,把概念讲成大白话,让你看了不再迷糊,还能拿出来装一装逼!不管是“锁”、“信号......
  • LeetCode100之接雨水(42)--Java
    1.问题描述        给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。        示例1输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下......
  • 100%吃透Spring 的三级缓存
    在此之前,我们需要了解什么是spring的循环依赖,下面我引用一篇之前的文档此处为语雀内容卡片,点击链接查看:https://www.yuque.com/u41175337/xy9eiy/egcll6gqml0ofb9a然后带你从源码级别debug,一步一步带你探索Spring是如何通过三级缓存来解决循环依赖问题的首先先创建两个类......
  • 注册还能100%中奖?!免费试用、快速上云!竟有这种好事?!
    活动时间内完成注册亚马逊云科技账号,即可获得以下福利免费试用,带你体验快速上云热门场景,带你手把手轻松搭建51CTO博客专属福利,100%获得精美礼品添加小助手微信,回复关键词「AWS」奖品名称奖品图片一等奖罗技无线键鼠套装二等奖绿联充电宝三等奖50元京东E卡丰厚奖品等你来拿!抽中哪个......
  • 【多线程奇妙屋】收藏多年的线程安全问题大全笔记(下篇) { 死锁问题 },笔记一生一起走,
    本篇会加入个人的所谓鱼式疯言❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • STM32G4 双ADC模式之交替触发方式
    目录概述1认识双ADC模式2功能实现2.1原理介绍2.2实现方法 2.3应用范例概述本文主要介绍STM32G4双ADC模式之交替触发方式,包括ADC模块的功能介绍,实现框架结构,以及交替触发方式ADC的转换的实现原理。1认识双ADC模式双ADC模式可用于具有两个或更多ADC的器件。......
  • 100种算法【Python版】第51篇——希尔排序
    本文目录1算法步骤2算法示例3python代码3.1代码说明3.2复杂度分析4算法优化4.1Shell原始增量序列4.2Hibbard增量序列4.3Knuth增量序列4.4Sedgewick增量序列4.5Tokuda增量序列4.6Pratt增量序列5不同的增量序列的效率对比希尔......