面试题:子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次,请写出程序
2012-12-04 20:29
585 查看
public class ThreadTest {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
new ThreadTest().init();
}
public void init() throws InterruptedException
{
final Business business=new Business();
new Thread(new Runnable()
{
public void run(){
for(int i=0;i<50;i++)
{
business.SubThread(i);
}
}
}
).start();
Thread.sleep(1000); //此行为了让主线程让出CPU,让子线程先执行
for(int i=0;i<50;i++)
{
business.MainThread(i);
}
}
class Business
{
//boolean bShouldSub=true;
public synchronized void MainThread(int i) throws InterruptedException
{
for(int j=0;j<100;j++)
{
System.out.println(Thread.currentThread().getName()+":yu_i="+i+",j="+j);
}
this.notify();
try{
this.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
public synchronized void SubThread(int i)
{
for(int j=0;j<10;j++)
{
System.out.println(Thread.currentThread().getName()+":bing_i="+i+",j="+j);
}
this.notify();
try{
this.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
new ThreadTest().init();
}
public void init() throws InterruptedException
{
final Business business=new Business();
new Thread(new Runnable()
{
public void run(){
for(int i=0;i<50;i++)
{
business.SubThread(i);
}
}
}
).start();
Thread.sleep(1000); //此行为了让主线程让出CPU,让子线程先执行
for(int i=0;i<50;i++)
{
business.MainThread(i);
}
}
class Business
{
//boolean bShouldSub=true;
public synchronized void MainThread(int i) throws InterruptedException
{
for(int j=0;j<100;j++)
{
System.out.println(Thread.currentThread().getName()+":yu_i="+i+",j="+j);
}
this.notify();
try{
this.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
public synchronized void SubThread(int i)
{
for(int j=0;j<10;j++)
{
System.out.println(Thread.currentThread().getName()+":bing_i="+i+",j="+j);
}
this.notify();
try{
this.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
相关文章推荐
- 【Java面试题】30 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
- 机试题-〉子线程循环10次,接着回到主线程循环100次,又接着回到子线程循环10次,再接着回到主线程又循环100次,如次循环50次,请写出程序
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序
- 多线程面试题:子线程循环10次,接着主线程循环100次;接着回到子线程循环10次,然后再回到主线程循环100次,如此交替50次。
- 子线程循环10次,接着主线程循环5次,接着又回到子线程循环10次,接着再回到主线程又循环5次,如此循环50次,请写出程序。
- 并发包实现:机试题-〉子线程循环10次,接着回到主线程循环100次,又接着回到子线程循环10次,再接着回到主线程又循环100次,如次循环50次,请写出程序
- Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程100次,如此循环50次
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- java多线程笔试题:子线程循环10次;接着主线程循环20次,接着又子线程循环10次,接着再回到主线程又循环20次,如此循环50次,请写出程序。
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
- 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
- 多线程学习--案例-子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- (某培训机构的练习题)子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。