编写两个线程 一个线程打印1~25,另一个线程打印字母A~Z
public static void main(String[] args) {
final Object object = new Object();
final LinkedList<String> a = buildA() ;
final LinkedList<String> b = buildB() ;
new Thread(new Runnable() {
@Override
public void run() {
synchronized (object){
Iterator it = a.iterator() ;
while (it.hasNext()){
try {
object.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
String strings = (String) it.next();
System.out.print(strings);
object.notify();
}
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
synchronized (object){
Iterator it1 = b.iterator() ;
while (it1.hasNext()){
object.notify();
String strings = (String) it1.next();
System.out.print(strings);
try {
object.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
public static LinkedList<String> buildA() {
LinkedList<String> list = new LinkedList<>() ;
for(int i=1;i<=26;i++){
list.add(String.valueOf(i)) ;
}
return list;
}
public static LinkedList<String> buildB() {
int tmp = 65;
LinkedList<String> list = new LinkedList<>() ;
for(int i=0;i<26;i++){
list.add( String.valueOf((char)(tmp+i))) ;
}
return list;
}