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

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

package text;

/**
 * 多线程
 * @author admin
 *
 */
public class Threads {

    public static void main(String[] args){
        Thread_1 t1=new Thread_1();
        Thread thread1 =new Thread(t1);
        thread1.start();

        Thread_2 t2 =new Thread_2();
        Thread thread2=new Thread(t2);
        thread2.start();

    }
}

class Thread_1 implements Runnable{

    public void run() {
        try {
            //线程暂停一秒
            Thread.sleep(1000); //此方法只是为了更直接的看到线程效果而添加
            System.out.println("执行方法1");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}

class Thread_2 implements Runnable{

    public void run() {
        try {
            Thread.sleep(1000);
            System.out.println("执行方法2");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}
    
时间: 2024-10-12 18:47:20

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

java多线程--实现Runnable接口

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

实现Java多线程的三种方式

1. JAVA多线程实现方式    JAVA多线程实现方式主要有三种: 继承Thread类 实现Runnable接口 使用ExecutorService.Callable.Future实现有返回结果的多线程. 其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的. 2. 继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但 Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread

Java 多线程 三种实现方式

Java多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的. 1.继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法.start()方法

多线程——实现Runnable接口

上篇博客(多线程--继承Thread类)介绍了java多线程的第一种实现方法--继承Thread类,这篇博客介绍第二种方法--实现Runnable接口,并实现run方法. 还用上篇博客的例子,现在用第二种方法实现.具体代码如下: public class Test2 implements Runnable{ private String word; public Test2(String word){ this.word = word; } @Override public void run()

Java面向对象作业-用接口方式测试向下转型

Java面向对象作业-用接口方式测试向下转型 根据视频的里实例 我们直接修改Test2测试方法: 1 package com.java1234.chap03.sec13; 2 3 public class Test2 { 4 5 public static void main(String[] args) { 6 People p1=new Student(); 7 p1.say(); 8 9 Student student=(Student) p1; 10 student.say(); 11

03_线程的创建和启动_实现Runnable接口方式

[线程的创建和启动的步骤(实现Runnable接口方式)] 1.定义Runnable接口的实现类,并重写其中的run方法.run()方法的方法体是线程执行体.class SonThread  implement Runnable{ public void run(){......}} 2.创建Runnable接口实现类的实例.   sonThread s1=new SonThread(); 3.用该实例作为Thread的target来创建Thread对象.   Thread t1 =new Th

使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点?

我感觉很多项目使用java或者c的多线程库+线程安全的queue数据结构基本上可以实现goroutine+channel开发能达到的需求,所以请问一下为什么说golang更适合并发服务端的开发呢?使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点? 使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点? >> golang 这个答案描述的挺清楚的:http://www.goodpm.net/postreply

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

在JDK5里面,提供了一个Lock接口.该接口通过底层框架的形式为设计更面向对象.可更加细粒度控制线程代码.更灵活控制线程通信提供了基础.实现Lock接口且使用得比较多的是可重入锁(ReentrantLock)以及读写锁(ReentrantReadWriteLock). 1. ReentrantLock 在Java多线程(二) 多线程的锁机制 里面,已经总结过通过使用Synchronized关键字实现线程内的方法锁定.但使用Synchronized关键字有一些局限性,上锁和释放锁是由JVM决定的

java 多线程--- Thread Runnable Executors

java 实现多线程的整理: Thread实现多线程的两种方式: (1)继承 Thread类,同时重载 run 方法: class PrimeThread extends Thread { long minPrime; primeThread(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime } } PrimeThread p = new