public class NThread implements Runnable { static Object o=new Object(); volatile static int index=0; static int n=10; //线程数量 int max=100; //打印次数 int i; //线程名 public NThread(int i) { this.i=i; } public static void main(String[] args) { for(int j=0;j<n;j++) { (new Thread(new NThread(j))).start(); } } public void run() { while(true) { synchronized (o) { //不加这个会卡死报异常 if(index>=max) { o.notify();//加上这个可以结束 break; } if(index%n!=i) { try { o.wait(); } catch (InterruptedException e) { e.printStackTrace(); } }else { System.out.println(i+"-->"+index); index++; o.notifyAll();//只能用notifyAll,用notify会只执行一次卡死 try { o.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } } }
0-->0 1-->1 2-->2 3-->3 4-->4 5-->5 6-->6 7-->7 8-->8 9-->9 0-->10 0-->90 1-->91 2-->92 3-->93 4-->94 5-->95 6-->96 7-->97 8-->98 9-->99
相关推荐
现场交替访问、等待和唤醒
java多线程每个线程挨着打印ABC的4种实现方式,有4个线程t1、t2、t3、t4,t1打印A后t2打印A再t3打印A再t4打印A,然后从新回到t1打印B再t2打印B...t4打印B... 4个线程轮流打印abc... 一个线程可以理解为一个人,打印...
主要介绍了Java多线程通信:交替打印ABAB实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了Java 实现多线程切换等待唤醒交替打印奇偶数 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
1. 实现一个类ThreadMock(模拟线程),用来模仿Thread类,该类具有以下特征: ... 两个线程交替打印。例如第一个线程打印1,接着第二个线程打印100,接着第一个线程打印2。。。。。。。。依此类推。
使用多线程和阻塞队列实现了ABC字母按顺序轮流打印
js代码-实现类似与java的多线程打印 实现交替打印1a2b3c4
一个线程打印123,另一个打印456,最终结果是打印123 456 123 45
两个 go 程轮流打印一个切片。 Golang 实现: 使用两个 channel,只用来判断 package main import ( fmt sync ) // 两个 go 程轮流打印一个切片 func main() { ch1 := make(chan bool, 1) ch2 := make(chan ...
编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是: 如果这个数字可以被 3 整除,输出 “fizz”。 如果这个数字可以被 5 整除,输出 “buzz”。 如果这个数字可以同时被 3 和 5 整除,输出 “fizzbuzz...
一个小的关于进程的编写,可能不是很完善,还需在升入理解
我们提供一个类: class FooBar { public void foo() { ...其中一个线程将会调用 foo() 方法,另一个线程将会调用 bar() 方法。 请设计修改程序,以确保 “foobar” 被输出 n 次。 示例 1: 输入
Python中使用threading.Condition交替打印两个字符的程序。 这个程序涉及到两个线程的的协调问题,两个线程为了能够相互协调运行,必须持有一个共同的状态,通过这个状态来维护两个线程的执行,通过使用threading....
python也提供了线程相关的并发原语,如锁threading.Lock,事件threading.Event,条件变量threading.Condition,信号量 threading.Semaphore. ...1.实现2个线程交替打印奇偶数 2.实现一个支持并发使用
多线程 leetcode XY.OS Exercise OS Exercise LeetCode MultiThreading 按序打印 交替打印FooBar 打印零与奇偶数
多线程leetcode leetcode ...交替打印 FooBar 10/30 1116 打印零偶数 10/30 1995年 Fizz Buzz 多线程 11/16 树 ID 名称 日期 303 范围总和查询 - 不可变 11/4 307 范围总和查询 - 可变 11/4 850 矩形区
java多线程,不使用锁机制,通过使用whlie循环实现交替打印数字和字母。
在屏幕上进行输出不断交替出现的现象,更进一步地感受GeekOS多任务调度。注意需要添加2个线程,每个线程的优先度是一致的,从而使得每种输出都是均衡的,这样就可以看到大小圆心交替出现的现象: 实验分析 1. 系统...
交替打印奇偶数 JVM Java 运行时内存划分 类加载机制 OOM 分析 垃圾回收 对象的创建与内存分配 你应该知道的 volatile 关键字 分布式相关 分布式限流 基于 Redis 的分布式锁 分布式缓存设计 分布式 ID 生成器 常用...