第22讲java高级编程一内容摘要:

2_3()。 } } 使用接口实现多线程示例 (续 ) 运行结果: Sat Feb 10 10:51:37 CST 2020 Sat Feb 10 10:51:39 CST 2020 Sat Feb 10 10:51:41 CST 2020 Sat Feb 10 10:51:43 CST 2020 Sat Feb 10 10:51:45 CST 2020 Sat Feb 10 10:51:47 CST 2020 Sat Feb 10 10:51:49 CST 2020 Sat Feb 10 10:51:51 CST 2020 Sat Feb 10 10:51:53 CST 2020 Sat Feb 10 10:51:55 CST 2020 Sat Feb 10 10:51:57 CST 2020 Sat Feb 10 10:51:59 CST 2020 Sat Feb 10 10:52:01 CST 2020 Sat Feb 10 10:52:03 CST 2020 Sat Feb 10 10:52:05 CST 2020 Sat Feb 10 10:52:07 CST 2020 Sat Feb 10 10:52:09 CST 2020 Sat Feb 10 10:52:11 CST 2020 Sat Feb 10 10:52:13 CST 2020 Sat Feb 10 10:52:15 CST 2020  程序分析: 通过 Thread类的构造方法创建 clock线程并进行初始化,同时将 Ex12_3类的当前对象 (this)作为参数。 该参数将 clock线程的run()方法与 Ex12_3类实现 runnable接口的 run()方法联系在一起,因此,当线程启动后, Java类的 run()方法就开始执行。 多线程同步示例 class Countmoney { private static int sum=0。 public static void add(int n) { int t = sum。 t = t + n。 try{ ((int)(1000*()))。 } catch(InterruptedException e){} sum = t。 (sum=+sum)。 }} class Cperson extends Thread{ public void run() { for(int i = 1。 i=3。 i++) (100)。 }} public class Ex12_4{ public static void main(String args[]) { Cperson c1 = new Cperson()。 Cperson c2 = new Cperson()。 ()。 ()。 } } 运行结果: sum=100 sum=200 sum=300 sum=100 sum=200 sum=300 多线程同步示例 程序分析 : 输出结果不正确。 其错误原因在于两个线程在各自 run()方法还没结束前,另一个线程已开始激活,因此造成计算上的错误。 要更正这个错误,只要设置 c1线程处理完之后,接着处理c2线程就可以了。 在 aad()方法之前加上 synchronized关键字,使其成为同步方法。 public synchronized static void add(int n){…… } class Cperson extends Thread { public void run() { for(int i = 1。 i=3。 i。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。