package unit8; import java.applet.Applet; import java.awt.Label; import java.awt.TextField; public class TestRunnable extends Applet implements Runnable{ Label prompt1 = new Label("The first thread:"); Label prompt2 = new Label ("The second thread:"); TextField threadFirst = new TextField(28); TextField threadSecond = new TextField(28); Thread thread1,thread2; int count1=0,count2=0; public void init(){ add(prompt1); add(threadFirst); add(prompt2); add(threadSecond); } public void start(){ //创建线程对象,具有当前类的run方法,并用字符串指定线程对象的名字 thread1 = new Thread(this,"FirstThread"); thread2 = new Thread(this,"SecondThread"); thread1.start(); thread2.start(); } public void run(){ String currentRunning; while(true){ try{ Thread.sleep((int)(Math.random()*3000)); }catch (InterruptedException e) { // TODO: handle exception } currentRunning = Thread.currentThread().getName(); if(currentRunning.equals("FirstThread")){ count1++; threadFirst.setText("线程1调用次数:"+count1); }else if(currentRunning.equals("SecondThread")){ count2++; threadSecond.setText("线程2调用次数:"+count2); } } } }
通过实现Runnable接口来实现所线程,具体实现run方法,这样当主程序sleep的时候就会执行子线程,这里的子线程都是Thread类的实例对象。
时间: 2024-10-14 18:58:28