1 实验四 多线程异常处理 1.实验目的 (1) 掌握Java 的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象; (2) 掌握Java 多线程的概念和实现方法; (3) 掌握Java 多线程的同步问题; 2.实验内容 实验题1 创建两个线程,一个线程打印“ A”,另一个线程打印“ B”,比如ABBABAABBA… . 实验代码: package xuguigui; public class SimpleThread extends Thread{ public SimpleThread(String name) { setName(name); } public void run(){ int i=0; while(i++ <5){ try{ System.out.print(getName()+" "); //Thread.sleep(1000); } catch(Exception e){ e.printStackTrace(); } } } } package xuguigui; public class Xu { public static void main(String[] args) { SimpleThread thread1=new SimpleThread("A"); SimpleThread thread2=new SimpleThread("B"); thread1.start(); thread2.start(); } } 2 程序运行结果: 实验题 2 假设有火车票1000张,创建10个线程模拟10个售票点,每个售票点100毫秒买一张票。打印出售票过程,注意使用 synchronized确保同一张票只能卖出一次。输出格式如下: 第 4售票点卖出第 100张票 第 2售票点卖出第 101张票 „„ 程序代码: package xx; public class testxx extends Thread { int ticket = 200; String name = ""; public void run() { while (true) { synchronized (name) { if (ticket <= 0) break; System.out.println("第" + Thread.currentThread().getName() + "售票点卖出第" + ticket-- + "张票"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } } package xx; public class Ticket { public static void main(String[] args){ testxx t = new testxx(); new Thread(t,"1").start(); new Thread(t,"2").start(); new Thread(t,"3").start(); 3 new Thread(t,"4").start(); new Thread(t,"5").start(); new Thread(t,"6").start(); new Thread(t,"7").start(); new Thread(t,"8").start(); new Thread(t,"9").start(); new Thread(t,"10").start(); } } 程序运行结果: 此题主要考察synchronized()同步代码块的理解和使用。在程...