所以修改一下,加入奇数偶数校验,保证打印奇数线程只打印奇数,偶数线程只打印偶数 让两个线程严格按照顺序执行 第二版代码 ThreadthreadOdd=newThread(() -> {while(cur <100){synchronized(sharedThing){if(cur %2==1){ System.out.println(Thread.currentThread().getName() +":"+ cur); cur +=1;try{ ...
oddThread 首先获取锁对象,判断计数器 count 是否为奇数,如果是奇数,则打印 count 的值并将 count ...
在Java中,实现两个线程交替打印1到100的数字,可以通过使用wait()和notify()方法进行线程间的同步和通信。以下是详细的步骤和相应的代码实现: 1. 创建两个线程对象 我们需要创建两个线程,一个负责打印奇数,另一个负责打印偶数。 2. 实现线程间的同步机制 使用wait()和notify()方法来实现线程间的同步。同时,我们...
从一行开始说吧:写一个类,第二行的固定语句就不再说了,下面的话直接是一个for循环,里面先声明一个数据类型为int,再写一个变量给它赋起始值为1,意思是从1开始循环,接着指定一个范围,我们要循环1-100,就需要写i<101,这个是只包含前面的数字而不包含后面的数字,如果写成100就只会循环99次;再写一个i++,让...
Java不使用锁让两个线程顺序打印1~100 两个线程,其中一个打印奇数,另一个打印偶数,打印的结果是按照顺序1~100,不使用锁。 importjava.util.concurrent.atomic.AtomicInteger;publicclassPrintOneToOneHundred{privatestaticintnum=1;privatestaticfinalAtomicIntegerx=newAtomicInteger(0);// 打印奇数privatestaticclassPrint...
题目:两个线程交替打印输出数字1-100,一个线程只打印偶数,另一个只打印奇数,并且要求按顺序输出。 最近看到了这个题目,想到了几种实现的方式,记录一下,如果有写的不对的地方,欢迎指正!!! 代码实现 方法一 可以通过两个外部的变量,去控制是打印奇数还是偶数,下面是实现的代码 ...
我们需要编写一个程序,其中包含3个线程:ThreadA、ThreadB和ThreadC。ThreadA打印1到100之间的所有奇数,ThreadB打印1到100之间的所有偶数,ThreadC打印1到100之间的所有数字的平方。这些线程应该按照顺序依次打印这些数字,即首先打印ThreadA的数字,然后是ThreadB的数字,最后是ThreadC的数字。
for (int i = 1; i < 100; i+=2) { if(i < 10){ System.out.print(" "+i+"\t");} else{ System.out.print(i+"\t");} if((i+1)%20 == 0){ System.out.println();} }
import java.util.Random;class A extends Thread { int i=1;Random r=new Random();public void run(){ while(i<100){ System.out.println("奇数:"+i);i+=2;try { Thread.sleep(r.nextInt(500));} catch(InterruptedException e){ e.printStackTrace();};} } } class B implements ...
//打印奇数 public synchronized long printJ() throws InterruptedException { //当num 是偶数时 ,线程等待 while(num % 2==0) { try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("打印奇数"); ...