《java 多线程》上海交通大学.pptVIP

  • 1
  • 0
  • 约1.26万字
  • 约 66页
  • 2019-12-19 发布于江苏
  • 举报
* * 7.3 多线程问题 //多个进程运行时执行顺序是交叉的 public class MyThread extends Thread{ int threadNum; public static void main(String args[]) { MyThread array[]=new MyThread[3]; for (int i=0;i3;i++) array[i]=new MyThread(i); for (int i=0;i3;i++) array[i].start(); } MyThread(int SerialNum) { super(); threadNum=SerialNum; } public void run() { for(int j=0;j5;j++) { System.out.println(threadNum+: +j+ ); try{sleep(1000);}catch(InterruptedException e){}; } System.out.println(thread +threadNum+ bye.);} } * * 如何写多线程 1.分别定义不同的线程类,在各自的run方法中定义线程的工作 class mythread1 extends Thread { public void run{….} } class mythread2 extends Thread { public void run{….} } 2. 在主类中实例化各线程类,并启动线程. public class demo extends Applet { public void init() { mythread t1=new mythread1(); mythread t2=new mythread2(); t1.start(); t2.start();} } * * 练习:将窗口分为上下两个区,分别运行两个线程,一个在上面的区域中显示由右向左游动的字符串,另一个在下面的区域从左向右游动的字符串. 方法一: 一个线程,在paint方法中使用两个输出字符串的语句 public void paint(Graphics g) { if y10 y1=200 else y1=y1-10; if y2200 y2=0 else y2=y2+10; g.drawString(“hello, Java!”,20,y1,); g.drawString(“hello, Java!”,40,y2,); } * * 方法二:定义两个类,运行各自的线程,各自有自己的paint()方法. 注意: 两个Applet必须是panel类或者是canvas类,将Applet的区域分成两块,否则不能运行paint语句. * * import javax.swing.*; import java.awt.*; public class Applet1 extends JApplet { C t1,t2; myCanvas c1,c2; Container contentPane = getContentPane( ); public void init() { c1=new myCanvas(); c2=new myCanvas(); contentPane.setLayout(new GridLayout(2,1)); contentPane.validate(); contentPane.add(c1); contentPane.add(c2); t1=new C(c1,5); t2=new C(c2,-5); t1.start(); t2.start();} } class myCanvas extends Canvas{ public void paint(Graphics g, int x,int y) { g.drawString(Hello World, x, y); } } class C extends Thread { myCanvas a; int steps; int x; C(myCanvas b,int size) { a=b; st

文档评论(0)

1亿VIP精品文档

相关文档