{staticvoidMain(string[] args) {//创建两个线程,分别打印奇数和偶数PrintThread oddThread =newPrintThread(1,2,100); PrintThread evenThread=newPrintThread(0,2,100);//启动两个线程Thread t1 =newThread(oddThread.Run); Thread t2=newThread(evenThread.Run); t1.Start(); t2.Start();//等待两个...
两个线程交替打印0~100的奇偶数 效果如图所示: 代码如下: 1privatevoidbutton5_Click(objectsender, EventArgs e)2{3Thread t0 =newThread(PrintOddNum );//打印奇数45Thread t1 =newThread(PrintEvenNum);67t0.Start();8t1.Start();9}1011publicAutoResetEvent event0 =newAutoResetEvent(false);//打印偶...
方法1:自旋判断 开启两个线程,每个线程自旋判断当前值是奇数/偶数,然后打印 publicclassTest{volatilestaticinti=0;publicstaticvoidmain(String[]args){Threadthread1=newThread(()->{while(i<=100){if(i%2==0){System.out.println(i+"===偶数");i++;}}});Threadthread2=newThread(()->{while(i<=1...
{inti=1;// 本线程打印奇数,则从1开始while(i<100){lock.lock();if(!t.flag){System.out.println("奇数:"+i);i+=2;t.flag=true;isNotEven.signal();}else{try{isEven.await();}catch(InterruptedExceptione){e.printStackTrace();}}lock.unlock();}}}publicclassEvenClassimplementsRunnable{public...
两个线程交替打印输出数字,一个线程只打印偶数,另一个只打印奇数 这还不简单,直接用同步锁就可以解决,真的是这样吗? 撸起袖子就是干... synchronized 实现 publicclassTest01{privatestaticintcount;privatestaticfinalObjectlock=newObject();privatestaticfinalintnum=100;publicstaticvoidmain(String[]args){newThrea...
两个线程交替打印0——100的奇偶数(JAVA多线程) 使用两个线程去分别打印奇数和偶数,分别为奇数线程和偶数线程。 原理一是两个线程去竞争syn锁。 原理二是使用wait和notify方法来执行这个任务。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
两个线程交替打印0~100奇偶数,用wait/notify */ public class WaitNotifyPrintOddEveWait { //1.拿到锁就打印 //2.打印完,唤醒其他线程,就休眠 private static int count =0; private static final Object lock = new Object(); public static void main(String[] args) throws InterruptedException { ...
面试官:就是有两个线程,一个线程打印奇数另一个打印偶数,它们交替输出,类似: 偶线程:0 奇线程: 1 偶线程:2 ... 奇线程: 99 偶线程:100 小黄:啊? 面试官:...嗯,好的。回去等通知吧。 解说 遇到这种突如其来的面试题,有时候会让人无从下手。尽管可能你学习过多线程的知识,但是面试官抛一个问题过来...
两个线程交替打印0~100的奇偶数 1 using System; 2 using System.Threading; 3 4 namespace Demo.Services 5 { 6 public class ThreadDemo 7 { 8 public ThreadDemo() 9 { 10
两个线程交替打印 0~100 的奇偶数 代码示例 using System; using System.Threading; using System.Threading.Tasks; public class ZeroEvenOdd { private int n = 100; private AutoResetEvent evenEvent = new AutoResetEvent(false); private AutoResetEvent oddEvent = new AutoResetEvent(true); public void...