java 线程通讯 主线程运行10次接着子线程运行5次,如此反复运行20次代码实现
2014-03-28 22:07
501 查看
package cn.lmj201402;
public class TraditionalThreadCommunication
{
public static void main(String[] args)
{
final Business business = new Business();
new Thread(new Runnable()
{
@Override
public void run()
{
for(int i = 0;i<20;i++)
{
business.main();
}
}
}).start();
for(int i = 0;i<20;i++)
{
business.sub();
}
}
}
class Business
{
boolean b = true;
public synchronized void main()
{
if(!b)
{
try
{
wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
for(int i = 0;i<10;i++)
{
System.out.println("Main "+i);
}
b = false;
notify();
}
public synchronized void sub()
{
if(b)
{
try
{
wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
for(int i = 0;i<5;i++)
{
System.out.println("Sub"+i);
}
b = true;
notify();
}
}
public class TraditionalThreadCommunication
{
public static void main(String[] args)
{
final Business business = new Business();
new Thread(new Runnable()
{
@Override
public void run()
{
for(int i = 0;i<20;i++)
{
business.main();
}
}
}).start();
for(int i = 0;i<20;i++)
{
business.sub();
}
}
}
class Business
{
boolean b = true;
public synchronized void main()
{
if(!b)
{
try
{
wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
for(int i = 0;i<10;i++)
{
System.out.println("Main "+i);
}
b = false;
notify();
}
public synchronized void sub()
{
if(b)
{
try
{
wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
for(int i = 0;i<5;i++)
{
System.out.println("Sub"+i);
}
b = true;
notify();
}
}
相关文章推荐
- 用Lock和Condition,实现主线程执行5次,子线程再执行10次,孙线程执行15次,如此反复5次
- JAVA可阻塞队列-ArrayBlockingQueue子类BlockingQueue的应用,使用它来实现子线程打印10次,主线程打印100次,如此反复
- 子线程先运行10次 ,主线程再运行10次,如此反复的运行20次
- java多线程笔试题:子线程循环10次;接着主线程循环20次,接着又子线程循环10次,接着再回到主线程又循环20次,如此循环50次,请写出程序。
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 子线程先执行10次,主线程执行5次,子线程再执行10次,主线程再执行5次,如此反复3次
- java线程,线程1循环10次,线程2循环10次,再到线程1 循环10次,再到线程2循环10次,如此反复,循环10次
- 【Java面试题】30 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
- java一道多线程题,子线程循环10次,主线程接着循环100次,如此循环50次的问题
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- Java实现在不同线程中运行的代码实例
- Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
- 主线程先循环20次,接着子线程循环10次,如此周而复始50次
- 子线程循环10次,接着主线程循环5次,接着又回到子线程循环10次,接着再回到主线程又循环5次,如此循环50次,请写出程序。
- java多线程: 子线程循环10次,主线程接着循环100次,如此循环50次
- java线程面试题之--两个线程,子线程10次,主线程5次,子线程10次,主线程5次,如此往复50次
- Java 中利用管道实现线程间的通讯
- java中运行一段代码所需时间实现方式
- JAVA线程并发性之CAS算法,模拟实现代码
- Java 中利用管道实现线程间的通讯