71多线程基本概念 对线程的综合支持是Java技术的一个重要特 色它提供了 thread类、监视器和条件变量的 技术 虽然 Macintosh, Windows nt, Windows9等操 作系统支持多线程,但若要用C或C+编写多 线程程序是十分困难的,因为它们对数据同 步的支持不充分
6 7.1 多线程基本概念 对线程的综合支持是Java技术的一个重要特 色.它提供了thread类、监视器和条件变量的 技术. 虽然Macintosh,Windows NT,Windows 9等操 作系统支持多线程,但若要用C或C++编写多 线程程序是十分困难的,因为它们对数据同 步的支持不充分
创建线程的方式 public class mythread extends applet implements runnable (小应用或已经是某个类的子类时 2.继承类 Thread public class mythread extends Thread 3.上述两种方法中都可用类 Thread产生线程的 对象 TThread newthread; 4.创建并启动线程 newthread=new Thread(this); newthread start;
7 7.2 创建线程的方式 1. public class mythread extends Applet implements Runnable (小应用或已经是某个类的子类时) 2. 继承类Thread public class mythread extends Thread 3. 上述两种方法中都可用类Thread产生线程的 对象 Thread newthread; 4. 创建并启动线程 newthread=new Thread(this); newthread.start();
72创建线程的方式 5run方法是运行线程的主体,启动线程时,由 java直接调用 public void runo 6停止线程由小应用程序的sop调用线程的 stop newthread stope 7 sleep方法的作用暂停线程的执行,让其它线 程得到机会,see要丢出异常,必须抓住 Trysleep(100)catch(Interrupted Exception e0 例:小应用程序中不用 Runnable接口仍然可以 使用线程(不调用主类的方法和调用主类的方 法)
8 7.2 创建线程的方式 5. run方法是运行线程的主体,启动线程时,由 java直接调用 public void run() 6.停止线程,由小应用程序的stop调用线程的 stop newthread.stop() 7 sleep方法的作用,暂停线程的执行,让其它线 程得到机会,sleep要丢出异常,必须抓住. Try{sleep(100)}catch(InterruptedException e){} 例:小应用程序中不用Runnable接口仍然可以 使用线程(不调用主类的方法和调用主类的方 法)
72创建线程的方式 import java applet. *i public class thread extends applet i mythread tl=new mythreado public inito i tIstart; class mythread extends Thread i public void runo f for (int i=0; K<4; i++) System. out printIn(2+i i trytsleep(400) 3 catch(Interupted Exception er
9 import java.applet.*; public class thread extends Applet { mythread t1=new mythread(); public init() { t1.start();} class mythread extends Thread { public void run() { for (int i=0;i<4;i++) System.out.println( “”+i); { try{sleep(400); } catch(InteruptedException e){ } } } 7.2 创建线程的方式
public class mainclass extends applet i C tI=new C(this) public void initoi tl start;3 public void paint(graphics g) i g drawString Hello,java", 10, 50);3) class c extends Thread mainclass a C(mainclass b) {a=b;} public void runo i while(truer a repaint; tryisleep (400);} catch(InterruptedException e)0))
10 7.2 创建线程的方式 public class mainclass extends Applet { C t1=new C(this); public void init() { t1.start();} public void paint(Graphics g) { g.drawString("Hello,java",10,50);}} class C extends Thread { mainclass a; C(mainclass b) { a=b; } public void run() { while(true){ a.repaint(); try{sleep(400);} catch(InterruptedException e){} }}