import java.util.*;public class Fun1Demo{
public static void main(String[] agrs){
Scanner scanner = new Scanner(System.in);
Thread a = new Thread(new Aa());
System.out.println("请输入密码:");
a.start();
//*1
String code = scanner.next(); Fun1.ak = false;
}
}
class Fun1 implements Runnable{
public static boolean ak = true;
public void run(){
while(ak){
System.out.print("\010" + "#");
try{
//*2
Thread.currentThread().sleep(50);
}
catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
/*程序运行到1的时候mian线程等待输入 进入锁定状态! 后线程A执行!
*a线程执行到2的时候线程调用sleep(50);进入锁定状态!
*a线程50豪秒秒后,就苏醒 进入Runnable 状态可以被调度了
*main线程继续进行!
*如果我一直不输入!(那么mian()是不是一直被锁定!)
*50豪秒后,a苏醒而main还在锁定状态 为什么不调度a线程继续执行
*结果大家运行下程序都知道-> 只要我不输出!程序就一直停在那里
*a 和 main 都不执行! 就是这里我想不通是什么原因 哪位大虾能
*帮我解释下其中的原理么 !回答的好的话 我会到+ 分的!
*/
public static void main(String[] agrs){
Scanner scanner = new Scanner(System.in);
Thread a = new Thread(new Aa());
System.out.println("请输入密码:");
a.start();
//*1
String code = scanner.next(); Fun1.ak = false;
}
}
class Fun1 implements Runnable{
public static boolean ak = true;
public void run(){
while(ak){
System.out.print("\010" + "#");
try{
//*2
Thread.currentThread().sleep(50);
}
catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
/*程序运行到1的时候mian线程等待输入 进入锁定状态! 后线程A执行!
*a线程执行到2的时候线程调用sleep(50);进入锁定状态!
*a线程50豪秒秒后,就苏醒 进入Runnable 状态可以被调度了
*main线程继续进行!
*如果我一直不输入!(那么mian()是不是一直被锁定!)
*50豪秒后,a苏醒而main还在锁定状态 为什么不调度a线程继续执行
*结果大家运行下程序都知道-> 只要我不输出!程序就一直停在那里
*a 和 main 都不执行! 就是这里我想不通是什么原因 哪位大虾能
*帮我解释下其中的原理么 !回答的好的话 我会到+ 分的!
*/
楼主【yangyongjie81】截止到2008-07-05 17:35:20的历史汇总数据(不包括此帖):
发帖的总数量:10 发帖的总分数:240
结贴的总数量:9 结贴的总分数:190
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:50
结贴的百分比:90.00 % 结分的百分比:79.17 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
值得尊敬