两种实现方式1:普通synchronized版实现、 2:使用Semaphore版实现
一:普通synchronized版实现
在这里插入代码片public class Ceshi999 {
static int result = 0;
public static void main(String[] args){
Thread thread = new Thread(new Jiou(0));
thread.start();
Thread thread1 = new Thread(new Jiou(1));
thread1.start();
}
static class Jiou implements Runnable{
private int i;
public Jiou(int i){
this.i = i;
}
@Override
public void run() {
while (result<100){
synchronized (Jiou.class){
System.out.println("thread"+i+":"+result++);
Jiou.class.notify();
try {
Jiou.class.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
【多线程|java多线程实现奇偶数输出】二:使用Semaphore版实现
public class Ceshi888 {
staticint result = 0;
public static void main(String[] args) throws InterruptedException {
int N = 3;
Thread threads[] = new Thread[N];
//声明N个数据
Semaphore semaphore[] = new Semaphore[N];
//声明N个信息号量
for(int i=0;
i100){
System.exit(0);
}
}catch (Exception e){
e.printStackTrace();
}finally {
currentSemphore.release();
}
}
}
});
threads[i].start();
}
}
}
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)