package com.thread;
public class PrintABCWith3Thread
{
public static void main(String[] args) throws Exception
{
int[] look = new int[] { 100, 1 };
Thread t1 = new Thread(new SubThread1(look), "Thread-1");
Thread t2 = new Thread(new SubThread2(look), "Thread-2");
Thread t3 = new Thread(new SubThread3(look), "Thread-3");
t2.start();
t3.start();
t1.start();
}
}
class SubThread1 implements Runnable
{
int[] look = null;
public SubThread1(int[] look)
{
this.look = look;
}
public void run()
{
synchronized (look)
{
while (look[0] > 0)
{
if (look[1] == 1)
{
look[0]--;
System.out.println(Thread.currentThread().getName() + " 打印次数:"
+ (100 - look[0]));
look[1] = 2;//告诉下一个由线程2来打印
look.notify();//打印完后自己释放资源鎖,并通知別人可以用鎖了
}
else
//否则就必须等待锁等了,之後再來進行操作了
{
try
{
look.wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}
}
分享到:
相关推荐
40个Java多线程问题总结 遇到问题讲解 解决方案
面试中多线程问题面试中多线程问题
理发师多线程问题,实验在redhat上通过了。有问题可以关注问我
MFC中的多线程问题[参照].pdf
C++多线程常见问题汇总,快来学习吧~~~~~~~~~~~~~~~~~~~~~~~~
Java多线程问题总结.doc
Java多线程问题及处理笔记.doc
MFC中的多线程问题.pdf
此文,描述了多线程的几个最核心的使用问题以及注意事项。
讲述了java语言中的多线程问题,对于面试者非常受益。
国外JAVA面试多线程问题分享.pdf
mfc多线程问题汇总[归类].pdf
Java程序员面试中的多线程问题,面试题
C#多线程问题2-简单案例-i++ c#经典案例.pdf
解决了很多关于多线程不熟的问题,能够解决很多关于多线程的问题,比如断点续传的一系列问题
java多线程PPT 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题
Delphi多线程应用以及多线程容易出现的问题作了详细的图文分析,个人非常受用。
总结: 多线程情况下尽量不要去修改全局变量,容易被其他线程所修改,而string被修改后地址也会变更,会造成指针指向的区域是已经被回收的区域。 如果要修改务必加上线程锁。
针对多线程程序数据竞争分析与检测困难的问题,提出一种基于隐Markov模型的多线程程序时序分析方法.用随机变量不确定性刻画不同线程之间时序上的交互关系,分析数据竞争条件下程序不确定结果的概率分布情况;建立多线程...