java中可有两种方式实现多线程,

一种是继承Thread类,(Thread本身实现了Runnable接口,就是说需要写void run 方法,来执行相关操作)

一种是实现Runnable接口

start, 和主线程一起执行,执行的顺序不确定

join,线程们 先执行,当所有的子线程执行完毕后,主线程才执行操作(文章最下面的例子)

// 1 Provide a Runnable object, the Thread class itself implements Runnable
//~~~ 1.1
Thread t1 = new Thread(new Runnable() {
    @Override
    public void run() {
        output("t1");
    }
});
t1.start();

//~~~ 1.2 is more general
public class HelloRunnable implements Runnable {
    public void run() {
        System.out.println("Hello from a thread!");
    }
}
(new Thread(new HelloRunnable())).start();

// 2 Subclass Thread (in simple applications)  The Thread class itself implements Runnable
public class HelloThread extends Thread {
    public void run() {
        System.out.println("Hello from a thread!");
    }
}
 (new HelloThread()).start();

// thread.join
t1.start()
t2.start()
outputresult // 如果想要等到 两个线程t1, t2 都执行完成,再通过outputresult,在主线程输出结果,需要t1.join(), t2.join()

t1.start()
t2.start()
t1.join()
t2.join()
outputresult

Java Thread and runnable的更多相关文章

  1. java: Thread 和 runnable线程类

    java: Thread 和 runnable线程类 Java有2种实现线程的方法:Thread类,Runnable接口.(其实Thread本身就是Runnable的子类) Thread类,默认有ru ...

  2. Java - Thread 和 Runnable实现多线程

    Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式 概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过jav ...

  3. java Thread和Runnable区别

    ①Thread类实现了Runnable接口,主要构造方法为Thread(Runnable target).Thread(Runnable target,String name).Thread(Stri ...

  4. NSThread - (void)start vs java Thread implements Runnable

    This method spawns the new thread and invokes the receiver’s main method on the new thread. If you i ...

  5. Java 使用线程方式Thread和Runnable,以及Thread与Runnable的区别

    一. java中实现线程的方式有Thread和Runnable Thread: public class Thread1 extends Thread{ @Override public void r ...

  6. Java 多线程(1)-Thread和Runnable

    一提到Java多线程,首先想到的是Thread继承和Runnable的接口实现 Thread继承 public class MyThread extends Thread { public void ...

  7. java多线程机制中的Thread和Runnable()区别

    1.java语言使用Thread类及其子类对象来表示线程,新建的一个线程声明周期中经历 新建.(声明一个线程,此时他已经有了相应的内存空间和其他资源),运行(线程创建之久就据用了运行的条件,一旦轮到使 ...

  8. JAVA多线程Thread VS Runnable详解

    要求 必备知识 本文要求基本了解JAVA编程知识. 开发环境 windows 7/EditPlus 演示地址 源文件   进程与线程 进程是程序在处理机中的一次运行.一个进程既包括其所要执行的指令,也 ...

  9. Java并发编程--1.Thread和Runnable

    创建线程 Java有两种方式创建线程, 继承Thread类和实现Runnable接口 继承Thread 步骤: 1.自定义一个类继承Thread类, 重写run方法 2.创建自定义类的对象,调用sta ...

随机推荐

  1. SQL SERVER 查询Job作业基本信息及执行情况

    查询作业基本信息和作业执行情况 SELECT [jop].[job_id] AS '作业唯一标识符' ,[jop].[ name ] AS '作业名称' ,[dp].[ name ] AS '作业创建 ...

  2. QTextEdit 总结

    关于Qt的富文本处理, 可以参考文档:Rich Text Processing 该文档有人翻译了一下(本来我想翻译- -!), 参考Rich Text Processing富文本处理 QTextEdi ...

  3. MySQL在Django框架下的基本操作(MySQL在Linux下配置)

    [原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------ ...

  4. C#获取CPU等硬件ID(转载)

    System.Management命名空间提供对大量管理信息和管理事件集合的访问,这些信息和事件是与根据 Windows 管理规范 (WMI) 结构对系统.设备和应用程序设置检测点有关的.应用程序和服 ...

  5. android开发之路10(文件的读写)

    1.安卓中文件的数据存储实例(将文件保存到手机自带存储空间中): ①MainActivity.java public class MainActivity extends Activity imple ...

  6. 安卓Design包之Toolbar控件的使用

    转自:ToolBar的使用 ToolBar的出现是为了替换之前的ActionBar的各种不灵活使用方式,相反,ToolBar的使用变得非常灵活,因为它可以让我们自由往里面添加子控件.低版本要使用的话, ...

  7. 小团队开发管理工具:gitlab+redmine+testlink+jenkins

    由于工作需要,需要为团队搭建一个高效可用的开发管理平台.现在可用的开发管理工具很多开源的.商业的,网上也有很多博客和文章.经过2周的学习比较,再结合自己的项目特点,最后选定工具集:gitlab+red ...

  8. JMS笔记(二)

    接上篇 JMS笔记(一),启动ActiveMQ后,打开http://127.0.0.1:8161/admin管理界面,用户名admin密码admin,点击上面的Queues菜单,创建一个q_test_ ...

  9. Oracle开发专题之:%TYPE 和 %ROWTYPE

    1. 使用%TYPE 在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据.在这种情况下,变量应该拥有与表列相同的类型.例如,students表的first_name列的类型为VARCHAR2 ...

  10. poj 2446 二分图最大匹配

    思路:由(i+j)为偶数的点向(i+j)为奇数的点建边.求一次最大匹配,若正好为空格数(不包含洞)的一半,即输出YES. #include<iostream> #include<cs ...