第15章 线程 线程入门 同步化议题 concurrent套件新增类别
第15章 • 线程 – 线程入门 – 同步化议题 – concurrent套件新增类别
继 THRead 继承 java. lang. Thread类别,并重新定义 run方法 实例化您自定义的 Thread类另 °使用 start0方法后动线程
继承Thread • 继承java.lang.Thread类别,并重新定义 run()方法 • 实例化您自定义的Thread类别 • 使用start()方法启动线程
继承 Thread public class Eraser Threadextends Thread i private boolean activei private string maski //重新定义run()方法 public void run ( while (isactiveo) i System. out.print(mask)i try i //暂停目前的线程50毫秒 Thread currentThread().sleep(50) catch(InterruptedException e) t e printstackTrace()i
继承Thread public class EraserThreadextends Thread { private boolean active; private String mask; … //重新定义run()方法 public void run () { while(isActive()) { System.out.print(mask); try { //暂停目前的线程50毫秒 Thread.currentThread().sleep(50); } catch(InterruptedException e) { e.printStackTrace(); } } } }
继 Thread //后动 Eraser线程 EraserThread eraserThread new EraserThread('#')i eraserThread. start()i String password scannernext()i eraserThread. setActive(false) 在 Java se6中可以使用 System. console 来取得 Java.O. Console物件 使用 Console物件的 read Password(Q方法 就可以避免输人的密码被窥视的问题
继承Thread //启动Eraser线程 EraserThread eraserThread = new EraserThread('#'); eraserThread.start(); String password = scanner.next(); eraserThread.setActive(false); • 在Java SE 6中可以使用System.console() 来取得java.io.Console物件 • 使用Console物件的readPassword()方法, 就可以避免输入的密码被窥视的问题
实作 Runnable.界面 如果您的类别经要继承某个类别,那 您就不能继承 Thread类别 继承了 Thread类别,您就不能再继承其它 类别 实侑 java. lang. Runnable接口来定义具线程 功能的类别 Runnable接口中定义一个run0方法要实作 在实例化一个 Thread对象时,可以传入 实作 Runnable接口的对象作为自变量
实作Runnable界面 • 如果您的类别已经要继承某个类别,那么 您就不能继承Thread类别 • 继承了Thread类别,您就不能再继承其它 类别 • 实作java.lang.Runnable接口来定义具线程 功能的类别 • Runnable接口中定义一个run()方法要实作 • 在实例化一个Thread对象时,可以传入一 个实作Runnable接口的对象作为自变量