首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

面试题-使用线程交替打印奇数偶数

需要使用两个线程交替打印奇偶数。...使用同步锁解决这个问题 使用信号量来实现交替打印 定义两个信号量,一个奇数信号量,一个偶数信号量,都初始化为1 先用掉偶数的信号量,因为要让奇数先启动,等奇数打印完再释放 信号量实现 具体实现思路:...定义两个信号量,一个奇数信号量,一个偶数信号量,都初始化为1 先用掉偶数的信号量,因为要让奇数先启动,等奇数打印完再释放 具体流程就是 第一次的时候先减掉偶数的信号量 奇数线程打印完成以后用掉奇数的信号量...然后释放偶数的信号量如此循环 import java.util.concurrent.Semaphore; /** * @ClassName AlternatePrinting * @Author...虽然这个异常不在这个问题的考虑范围内 但是可以使用finally 来包裹释放锁资源 同步锁打印 让两个线程使用同一把锁。交替执行 。 判断是不是奇数 如果是奇数进入奇数线程执行打印并加一。

1.3K21

java计算奇数阶魔方阵

一、提出问题 所谓“奇数阶魔方阵”是指n为不小于3的奇数的魔方阵。这类魔方阵的形式多样,这里我们仅讨论其中的一种形式的正规魔方阵。例如:3阶、5阶和7阶的魔方阵如图3 – 4 所示。 ?...现在要求给出:能让计算机自动输出类似图3 – 4 所示的n阶奇数魔方阵的算法,其中n为任意给定的一个不小于3的奇数。 二、简单分析 决定“奇数阶魔方阵”的关键是要按要求决定其方阵中的各个数字。...观察图3 – 4中的三个奇数阶魔方阵,不难发现: 1.由于是正规魔方,故所填入的n 2个不同整数依次为1、2、3、…、n 2 ; 2.各行、列和对角线上的数字虽各不相同,但其和却是相同的。...import java.util.Scanner; /** * * @author 冷血 * */ public class Java_4 { private int[][] a;..._4 java = new Java_4(m); java.jiSuan(); java.paint(); } }

1.2K20

经典面试题-两个线程交替打印奇数和偶数

前提 今天下班时候和同事聊天偶然听到面试题“两个线程交替打印奇数和偶数”的实现,这里做一个复盘。 复盘 场景一:线程A打印奇数,线程B打印偶数,线程A和线程B交替打印,使用对象监视器实现。...场景二:线程A打印奇数,线程B打印偶数,线程A和线程B交替打印,使用JDK提供的并发类库实现。...场景一 场景一中,线程A和线程B交替打印奇数和偶数,使用对象监视器实现,通俗来说:线程A或线程B只要有一者竞争锁成功,就打印++i,通知其他线程从等待集合中释放,然后自身线程加入等待集合并且释放锁即可。...:1 线程[thread-2]打印数字:2 线程[thread-1]打印数字:3 线程[thread-2]打印数字:4 线程[thread-1]打印数字:5 线程[thread-2]打印数字:6 线程[...thread-2]打印数字:7 线程[thread-1]打印数字:8 线程[thread-2]打印数字:9 线程[thread-1]打印数字:10 眼尖的可能看到这里是先由thread-2打印奇数,然后

3.6K31

java 打印pdf_java打印pdf文件

目录 一、Java打印简介 二、Java打印实现 2.1 JPG图片文件格式打印实现 2.2 PDF文件格式打印实现 2.3 Word文件格式打印实现 2.3.1 Word文件采用jacob插件进行打印实现...但由于历史原因,Java 提供的打印功能一直都比较弱。实际上最初的 jdk 根本不支持打印,直到 jdk1.1 才引入了很轻量的打印支持。...实际上,SUN 公司也一直致力于 Java 打印功能的完善,而 Java2 平台则终于有了一个健壮的打印模式的开端, jdk1.4 则提供了一套完整的”Java 打印服务 API” (Java Print...本次调研的打印对象主要是JPG,PDF和Word这三种常见文件格式。 二、Java打印实现 2.1 JPG图片文件格式打印实现 打印JPG图片格式的文件,本次采用的Java原生的打印方式。...jdk1.4之后对打印功能有了很好的支持。Java打印 API 主要存在于 java.awt.print 包中。

5.2K20

【C语言必刷题】1.打印1~100之间的奇数

题目描述 使用C语言写一个程序打印1~100之间的奇数,要求输出的数字用空格分隔。 2. 解题思路 一个整数,能被2整除就是偶数,不能被2整除的数是奇数奇数的个位是1,3,5,7,9。...对于1~100之间的奇数。...我们可以用以下方法: 利用循环语句for从1开始迭代到100; 利用if语句判断每个是否为奇数(即除以2余数不为0) 如果数字是奇数,就使用printf函数将其打印输出,并在数字之间添加一个空格...= 0) // 判断当前数字是否为奇数 { printf("%d ", i); // 如果是奇数,则打印该数字 } } return 0; } // 方法2: #include<stdio.h...,直接将其打印 printf("%d ", i); } return 0; } 运行结果:

11010

经典面试题-两个线程交替打印奇数和偶数

前提 今天下班时候和同事聊天偶然听到面试题“两个线程交替打印奇数和偶数”的实现,这里做一个复盘。 复盘 场景一:线程A打印奇数,线程B打印偶数,线程A和线程B交替打印,使用对象监视器实现。...场景二:线程A打印奇数,线程B打印偶数,线程A和线程B交替打印,使用JDK提供的并发类库实现。...场景一 场景一中,线程A和线程B交替打印奇数和偶数,使用对象监视器实现,通俗来说:线程A或线程B只要有一者竞争锁成功,就打印++i,通知其他线程从等待集合中释放,然后自身线程加入等待集合并且释放锁即可。...:1 线程[thread-2]打印数字:2 线程[thread-1]打印数字:3 线程[thread-2]打印数字:4 线程[thread-1]打印数字:5 线程[thread-2]打印数字:6 线程[...thread-2]打印数字:7 线程[thread-1]打印数字:8 线程[thread-2]打印数字:9 线程[thread-1]打印数字:10 眼尖的可能看到这里是先由thread-2打印奇数,然后

62220

C语言每天一题:打印1~100之间的奇数

打印 1~100之间的奇数 题⽬描述:使⽤C语⾔写⼀个程序打印 1~100之间的奇数,要求输出的数字中间加上空格。...解法思路:整数中,能被2整除的数是偶数,不能被 2 整除的数是奇数奇数的个位为 1,3,5,7,9。对于 1~100 之间的奇数,我们可以进⾏如下操作: 1....使⽤条件语句 if 来检查每个数字是否为奇数(即除以 2 余数不为 0 ); 3. 如果数字是奇数,则我们使⽤ printf 函数将其打印到控制台上,并在数字之间添加⼀个空 格; 4....• 特别说明:对于每个相邻的奇数,他们的差为 2,因此我们可以在 for 循环语句中迭代时只遍历 奇数⽽省略了判断的过程。...,若是则打印i的值以及⼀个空格         if (i % 2 == 1)             printf("%d ",i);     }     //在main函数中返回0,表⽰程序已成功执

14310

JAVAJava 日志打印规范

System.out以及System.err算是最为古老的JAVA打印日志的方式,这个打印有点是简单快速,缺点是不能进行任何格式配置,也没输出问题,效率极低。...JUL(Java Util Logging)Sun公司对于Log4j十分眼红,在拒绝Log4j融入Java中的请求之后,自己开发了日志框架,当然基本可以看作是照搬。...最后画出来这个图有点可怕,搭建可以保存下来多看几遍(为了方便观看,这里把辅助线去掉了)图片整个Java的日志框架发展出4框架和三个接口,主要使用的框架是:Log4j2、Slf4j、Logback、JUL...最后结果是 Java 的日志系统开源组件极度混乱,并且烂的和一坨shit一样。从这一情况也可以看出定标准是非常重要的。7....占位符而不是+号和java编译为class的时候会使用StringBuffer 做字符串拼接操作。

4.6K40
领券