内容提要
文章讨论了Java多线程的使用,包括提高程序效率、选择扩展Thread或实现Runnable的优缺点、使用join()等待线程结束、设置线程优先级、synchronized关键字的作用、wait()和notify()的用途,以及如何修改TickTock类以实现真实计时。同时指出不应使用suspend、resume()和stop()方法,并介绍如何获取线程名称和判断线程是否存活。最后,建议为Queue类添加线程安全的同步机制。
关键要点
-
Java多线程的使用可以提高程序效率。
-
多线程支持由Thread类和Runnable接口提供。
-
在创建可执行对象时,扩展Thread可能比实现Runnable更好。
-
可以使用join()方法等待名为MyThrd的线程结束。
-
可以将名为MyThrd的线程的优先级设置为比正常优先级高三个级别。
-
synchronized关键字的作用是确保方法的线程安全。
-
wait()和notify()方法用于线程的协调执行。
-
TickTock类需要修改以实现真实计时,每个tique和taque各需半秒。
-
不应在新程序中使用suspend、resume()和stop()方法。
-
Thread类中定义的方法可以获取线程的名称。
-
isAlive()方法用于判断线程是否存活。
-
建议为Queue类添加线程安全的同步机制。
延伸问答
Java多线程如何提高程序效率?
Java多线程通过并行处理任务来提高程序效率,使得多个操作可以同时进行,从而减少整体执行时间。
扩展Thread和实现Runnable有什么优缺点?
扩展Thread可能更简单,但实现Runnable更灵活,允许多个类继承自不同的父类,因此在创建可执行对象时,选择取决于具体需求。
如何使用join()方法等待线程结束?
可以调用MyThrd线程的join()方法,这样主线程会等待MyThrd执行完毕后再继续执行。
synchronized关键字的作用是什么?
synchronized关键字用于确保方法的线程安全,防止多个线程同时访问同一资源导致数据不一致。
TickTock类如何修改以实现真实计时?
需要将每个tique和taque的时间设置为半秒,以确保每个完整的tique-taque周期为一秒。
为什么不应在新程序中使用suspend、resume()和stop()方法?
这些方法可能导致线程状态不一致和死锁,因此不推荐在新程序中使用。