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类的实例对象。

java多线程--实现Runnable接口的更多相关文章

  1. java多线程--实现Runnable接口方式

    因为java类只能继承一个类可以实现多个接口的特性,所以一般情况下不推荐使用继承Thread类实现多线程,下面是实现Runnable接口方式的简单多线程代码 package text; /** * 多 ...

  2. java 多线程:Callable接口;FutureTask类实现对象【Thread、Runnable、Callable三种方式实现多线程的区别】

    Callable接口介绍: Java5开始,Java提供了Callable接口,像是Runnable接口的增强版,Callable接口提供了一个 call()方法可以作为线执行体. call()方法比 ...

  3. java中多线程中Runnable接口和Thread类介绍

    java中的线程时通过调用操作系统底层的线程来实现线程的功能的. 先看如下代码,并写出输出结果. // 请问输出结果是什么? public static void main(String[] args ...

  4. java 多线程--- Thread Runnable Executors

    java 实现多线程的整理: Thread实现多线程的两种方式: (1)继承 Thread类,同时重载 run 方法: class PrimeThread extends Thread { long ...

  5. Java多线程(五) Lock接口,ReentranctLock,ReentrantReadWriteLock

    在JDK5里面,提供了一个Lock接口.该接口通过底层框架的形式为设计更面向对象.可更加细粒度控制线程代码.更灵活控制线程通信提供了基础.实现Lock接口且使用得比较多的是可重入锁(Reentrant ...

  6. 多线程之 Runnable接口

    一.多线程实现的第二种方式 1.定义类,实现Runnable接口 2.重写接口中的run方法,要在run方法中定义线程要执行的任务 public class MyRunnableImpl implem ...

  7. 多线程——实现Runnable接口实现一个多线程

    实现Runnable接口实现一个多线程 Runnable接口源码: package java.lang; //Runnable接口源码只有一个run方法 public interface Runnab ...

  8. 多线程-实现Runnable接口

    当一个任务或者函数多个线程同时调用时仅仅继承Thread是不行的.需要实现Runnable接口. 好处: 1.将线程的任务从线程的子类中分离出来,进行了单独的封装. 按照面向对象的思想将任务封装成对象 ...

  9. Java通过实现Runnable接口来创建线程

    创建一个线程,最简单的方法是创建一个实现Runnable接口的类. 为了实现Runnable,一个类只需要执行一个方法调用run(),声明如下: public void run() 你可以重写该方法, ...

随机推荐

  1. ffmpeg-20160508-git-bin

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...

  2. ABAP 通过视图取数到内表函数

    CALL FUNCTION 'VIEW_GET_DATA'     EXPORTING       view_name = 'V_TVBUR'     TABLES       data      = ...

  3. Centos 用户登录失败N次后锁定用户禁止登陆

    针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁 Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁 ...

  4. Divide and conquer:Dropping tests(POJ 2976)

    最大化平均值 题目大意:给定你n个分数,从中找出k个数,使∑a/∑b的最大值 这一题同样的也可以用二分法来做(用DP会超时,可见二分法是多么的实用呵!),大体上是这样子:假设最大的平均值是w,那么题目 ...

  5. codeforces 558B. Amr and The Large Array 解题报告

    题目链接:http://codeforces.com/problemset/problem/558/B 题目意思:给出一个序列,然后找出出现次数最多,但区间占用长度最短的区间左右值. 由于是边读入边比 ...

  6. asp.net mvc5 伪静态 WebForm

    Mvc4和5通用 1.背景:老项目WebForm开发 需要 融合到新项目Mvc5开发 2.需求:Url地址TruckDetail.aspx?id=455 达到效果 truck/455.html 3.不 ...

  7. 【Git】标签管理

    来源:廖雪峰 为什么要标签: 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来. ...

  8. linux 用户、用户组不能是全数字

    今天封装命令行,需要创建用户.用户组,遇到下面问题,如图: 当时我和迷茫,为什么明明存在‘1111’这个用户组,但是却提示不存在呢??难道是linux的一个bug??? 接着我又试了几个: 发现规律了 ...

  9. IOS- 单例

    单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模式的要点有三个:一是某个类只能有一个实例: ...

  10. iOS开发之Xcode 相对路径与绝对路径

    iOS开发之 相对路径与绝对路径 https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/Xcod ...