首页 > 其他分享 >两个线程交替打印100以内的数字

两个线程交替打印100以内的数字

时间:2023-05-09 22:27:03浏览次数:31  
标签:count Printer Thread int 打印 线程 new 100 id

共享内存

class test {

    private static int count = 0; // 共享的计数器

    public static void main(String[] args) {
        Thread t1 = new Thread(new Printer(0));
        Thread t2 = new Thread(new Printer(1));
        t1.start();
        t2.start();
    }

    private static class Printer implements Runnable {
        private final int id;

        public Printer(int id) {
            this.id = id;
        }

        @Override
        public void run() {
            while (count < 100) {
                synchronized (this) {
                    if (count % 2 == id) {
                        System.out.println(Thread.currentThread().getName() + ": " + count);
                        count++;
                    }
                }
            }
        }
    }
}

标签:count,Printer,Thread,int,打印,线程,new,100,id
From: https://www.cnblogs.com/changebaobao/p/17386466.html

相关文章

  • 1009 说反话(C++)
    一、问题描述:给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有......
  • Java程序设计-实验五 Java多线程程序设计
    目的1.掌握Runnable接口实现多线程的方法2.掌握Thread类实现多线程的用法3.掌握Java语言中多线程编程的基本方法1.线程接力(45分)要求:编写一个应用程序,除了主线程外,还有三个线程:first、second和third。first负责模拟一个红色的按钮从坐标(10,60)运动到(100,60);second负......
  • 用print-js实现打印功能时element table组件打印不全的问题
    插件下载:npminstall--saveprint-js解决方案,修改print.js里面的 getHtml//打印类属性、方法定义/*eslint-disable*/constPrint=function(dom,options){  if(!(thisinstanceofPrint))returnnewPrint(dom,options);  this.options=this.exten......
  • JAVA的线程池随笔
    线程池基本概念概念:线程池主要是控制运行线程的数量,将待处理任务放到等待队列,然后创建线程执行这些任务。如果超过了最大线程数,则等待。优点:线程复用:不用一直new新线程,重复利用已经创建的线程来降低线程的创建和销毁开销,节省系统资源。提高响应速度:当任务达到时,不用创建新的......
  • Python多线程(multithreading)
    1.threading模块Python3线程中常用的两个模块为:_thread,threading(推荐使用).thread模块已被废弃,为了兼容性,Python3将thread重命名为_thread,即通过标准库_thread和threading提供对线程的支持。_thread提供了低级别的、原始的线程以及一个简单的锁,它相比于threading模块的功能还......
  • 关于并发编程与线程安全的思考与实践
    作者:京东健康张娜一、并发编程的意义与挑战并发编程的意义是充分的利用处理器的每一个核,以达到最高的处理性能,可以让程序运行的更快。而处理器也为了提高计算速率,作出了一系列优化,比如:1、硬件升级:为平衡CPU内高速存储器和内存之间数量级的速率差,提升整体性能,引入了多级高速缓......
  • 【工具类】线程安全的滑动时间窗口记录工具类
    闲来无事,分享一个工具类,写的不好,轻喷,欢迎指出问题目标是线程安全无锁高性能的记录滑动时间窗口值importlombok.Getter;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurrent.TimeUnit;importjava.util.conc......
  • 1000个已成功入职的软件测试工程师简历经验总结:软件测试工程师简历项目经验怎么写?(含
    一、前言:浅谈面试 面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试,得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一下笔者十年测试生涯的面试总结!软件测试面试常......
  • WPF知识点全攻略15- 线程处理
    使用WPF构建应用程序时,想要保证系统的流畅性、用户的体验性,处理好UI线程(主线程)与其他线程(子线程)的关系是必要的。以最近大火的直播带货为例,镜头前主播(部分副播)的语言动作是主线程,镜头外的场控、客服等人员,各自都有一个属于自己的子线程。场控在做软硬件调试、商品上架下架、发优......
  • A100服务器使用过程的曲折
    使用A100显卡跑程序时,当使用多张卡一起跑的时候就会出现程序卡住不动的情况,这是由于系统的BIOS里IO虚拟化默认启动了PCI访问控制服务(ACS)导致GPU间无法直接通过P2P方式通信exportNCCL_P2P_DISABLE=1在代码程序前加上这个命令就能多卡运行了、......