package com.example.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;
public class MainActivity extends AppCompatActivity {
private Button btn;
private Object lock=0;
private BlockingDeque<Thread> testQeque;
private boolean b=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//testQeque=new LinkedBlockingDeque<>();
TestThread test=new TestThread();
for(int i=0;i<10;i++){
Thread t=new Thread(test);
t.start();
}
}
});
}
class TestThread implements Runnable{
DoThread doThread=new DoThread();
@Override
public synchronized void run() {
System.out.println("test "+Thread.currentThread().getName()+"开始执行");
new Thread(doThread).start();
b=false;
synchronized (lock){
while (b==false){
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
System.out.println("test "+Thread.currentThread().getName()+"执行完毕");
}
}
class DoThread implements Runnable{
@Override
public void run() {
synchronized (lock){
//System.out.println("do "+Thread.currentThread().getName()+"开始执行");
try {
Thread.currentThread().sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
b=true;
lock.notify();
}
//System.out.println("do "+Thread.currentThread().getName()+"执行完毕");
}
}
}
java多线程排队执行
最新推荐文章于 2024-07-29 18:48:35 发布