java的多线程机制内容摘要:
{ int i =1。 public void run() { while (i50) { (i++)。 } } } 6 Java的多线程机制 30 建立线程 线程控制 (虚拟 CPU) 线程代码 被操作数据 Thread的实例 (t1) 由实现了 Runnable接口 的类 (Job1)提供 —run方法 实现 Runnable接口的类 (Job1)的实例 ( j ) 6 Java的多线程机制 31 生成与运行线程 –方法 2 class MyRun implements Runnable { public void run() {线程体 …} } MyRun mr = new MyRun()。 Thread t1 = new Thread(mr)。 ()。 //Thread实例用于线程控制 适合于:定义 run()方法的类必须是其他类或其他类的子类。 6 Java的多线程机制 32 方法之二: Runnable( 续 ) 两种方法的选择 –当需要从其他类,如 Applet类继承时,使用Runnable接口 –当编写简单的程序时,可考虑使用继承Thread类 例: –具体运行结果(线程调度)与平台有关 6 Java的多线程机制 33 public class Runner extends Thread { //赛跑者线程类 public int tick = 1。 public void run() { while (tick 40000000) tick++。 } } // //RaceApplet是一个实现了多线程的 Applet public class RaceApplet extends Applet implements Runnable { final static int NUMRUNNERS = 2。 //定义赛跑线程的个数 final static int SPACING = 20。 //声明两个赛跑线程 Runner[] runners = new Runner[NUMRUNNERS]。 //声明一个画图线程 Thread updateThread = null。 6 Java的多线程机制 34 public void init() { //重载 Applet的 init()方法 for (int i = 0。 i NUMRUNNERS。 i++) { runners[i] = new Runner()。 //创建赛跑线程线程 runners[i].setPriority(i+1)。 //设优先级 first=1,second=2 } if (updateThread == null) { //创建绘图线程,并设 优先级为 3 updateThread = new Thread(this, Thread Race)。 (NUMRUNNERS+1)。 } addMouseListener(new MyAdapter())。 //注册事件监听者 } //end of init() 6 Java的多线程机制 35 // 内部事件监听者类,监听鼠标事件 class MyAdapter extends MouseAdapter { //鼠标点击后,开始赛跑及绘制线程 public void mouseClicked(MouseEvent evt) { if (!()) ()。 //启动绘制线程 for (int i = 0。 i NUMRUNNERS。 i++) { if (!runners[i].isAlive()) runners[i].start()。 //启动赛跑线程 } } } //end of class MyAdapter 6 Java的多线程机制 36 public void paint(Graphics g) {//paint()方法中绘制框架 … … … } //end of paint() //update()方法中绘制赛跑者的进度 public void update(Graphics g) { for (int i = 0。 i NUMRUNNERS。 i++) { //画两条线 (SPACING, (i+1)*SPACING, SPACING + (runners[i].tick)/100000, (i+1)*SPACING)。 } } //end of update() 6 Java的多线程机制 37 public void run() { //实现 Runnable接口的 run()方法 while (true) { repaint()。 //重新绘制,自动调用 update()方法 try { (10)。 //休眠 ,把执行机会让给低优先级线程 } catch (InterruptedException e) { } } } //end of run() public void stop() { //重载 Applet的 stop()方法 for (int i = 0。 i NUMRUNNERS。 i++) { if (runners[i].isAlive()) runners[i] = null。 //中止赛跑线程 } if (()) updateTh。java的多线程机制
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
jdosopenstackdocker
发表于 2025-04-21
8号北辰世纪中心 A座 6层 6F Building A, NorthStar Century Center, 8 Beichen West Street, Chaoyang District, Beijing 100101 T. +86 18551730951 E. 自研 RPC 1/2 第 15页 JDOS 网络 接线 第 16页 JDOS 网络 vlan 第 17页 JDOS 自研
javascript语法基础
加 1。 返回的值取决于 ++运算符是位 于操作数之前还是位于操作数之后。 ++x返回递增后的 x值 x++返回递增前的 x值 一元递减。 此运算符只计算一个操作数。 返回的值取决于 运算符是位于操作数之前还是位 于操作数之后 x返回递减后的 x值 x返回递减前的 x值 一元求反。 此运算符返回操作数的相反数 如果 a等于 5,则 a =5 20 比较运算符 运算符 说明 示例 = = 等于。