一丶继承Thread类实现多线程

第一步:继承Thread类
第二步:重写run()方法
第三步:创建继承了Thread类的对象 , 调用start()方法启动。
//线程创建方式一 :
/*
第一步:继承Thread类
第二步:重写run()方法
第三步:创建继承了Thread类的对象 , 调用start()方法启动。
*/
public class TestThread extends Thread{
@Override
public void run() {
for (int i = 0; i < 3000; i++) {
System.out.println("爱你三千遍");
}
} public static void main(String[] args) {
TestThread testThread = new TestThread();
testThread.start();
} }

二丶实现Runnable接口创建多线程

第一步:实现runnable接口
第二步:冲写run方法
第三步:创建实现类对象,创建代理类thread类对象 +start()方法启动线程
public class Thread_Study implements Runnable{
/*
* 第一步:实现runnable接口
* 第二步:冲写run方法
* 第三步:创建实现类对象,创建代理类thread类对象 +start()方法启动线程
*
* */ @Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("看书");
}
} public static void main(String[] args) {
Thread_Study ts = new Thread_Study();
new Thread(ts).start();
for (int i = 0; i < 100; i++) {
System.out.println("敲代码");
} } }

运行结果:

敲代码
敲代码
敲代码
敲代码
敲代码
敲代码
敲代码
敲代码
看书
看书
看书
看书
看书
看书
看书

结论:

我们可以观察到敲代码和看书同时进行每个线程之间是不相互干涉的,各自执行各自的,这和调用方法不同,调用方法是等到上一个步骤执行完成才可以在执行下一个步骤.

 
 

java中多线程的两种创建方式的更多相关文章

  1. Java中String对象两种赋值方式的区别

    本文修改于:https://www.zhihu.com/question/29884421/answer/113785601 前言:在java中,String有两种赋值方式,第一种是通过“字面量”赋值 ...

  2. 细说java中Map的两种迭代方式

    曾经对java中迭代方式总是迷迷糊糊的,今天总算弄懂了.特意的总结了一下.基本是算是理解透彻了. 1.再说Map之前先说下Iterator: Iterator主要用于遍历(即迭代訪问)Collecti ...

  3. Android中Fragment的两种创建方式

    fragment是Activity中用户界面的一个行为或者是一部分.你可以在一个单独的Activity上把多个Fragment组合成为一个多区域的UI,并且可以在多个Activity中再使用.你可以认 ...

  4. Java中容器的两种初始化方式比较

    List,Set,Map的两种初始化赋值方式  List List<Integer> list2 = new ArrayList<Integer>(); for (int i= ...

  5. java多线程的两种创建方式

    方式一:继承Thread类 1.创建一个继承于Thread类的子类 2.重写Thread类的run()方法---> 将此线程执行的操作声明在run()中 3.创建Thread类的子类的对象 4. ...

  6. String变量的两种创建方式

    在java中,有两种创建String类型变量的方式: String str01="abc";//第一种方式 String str02=new String("abc&qu ...

  7. 阿里巴巴--java多线程的两种实现方式,以及二者的区别

    阿里巴巴面试的时候,昨天问了我java面试的时候实现java多线程的两种方式,以及二者的区别当时只回答了实现线程的两种方式,但是没有回答上二者的区别: java实现多线程有两种方式: 1.继承Thre ...

  8. JAVA高级架构师基础功:Spring中AOP的两种代理方式:动态代理和CGLIB详解

    在spring框架中使用了两种代理方式: 1.JDK自带的动态代理. 2.Spring框架自己提供的CGLIB的方式. 这两种也是Spring框架核心AOP的基础. 在详细讲解上述提到的动态代理和CG ...

  9. 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类

    转自: http://blog.csdn.net/sunguangran/article/details/6069317 非常感谢原作者,整理的这么详细. 在java中可有两种方式实现多线程,一种是继 ...

随机推荐

  1. China Vis 2015 会议小结

    China Vis 2015  Paper有6个分会场.主要有 1.天气.气象.灾害可视化. 2.文本可视化应用: 3.树.网络.以及高维技术. 4.时空分析. 5.科学可视化与应用: 五个方面主题. ...

  2. python day- 7 进本数据类型的先关知识点 set集合 深浅拷贝

    一.基本数据类型相关知识 1.str.    join()函数 关于字符串 a = "我爱北京" b = a.join("真的")            将&q ...

  3. Jetty的JNDI数据源

    一. 此处绑定的数据源是以 DBCP 为实现.首先必须将数据库驱动(这里用了MYSQL数据库)和DBCP所需要的 Jar 包复制到 Jetty 根目录的 lib 目录下.DBCP主要需要以下3个文件: ...

  4. kafka 和 zookeeper 常用命令记录

    启动zookeeper zkServer.sh start 启动kafka服务器 kafka-server-start.sh /software/kafka_2.10-0.10.2.1/config/ ...

  5. rails用generate为两个模型创建has_and_belongs_to_many中间表

    假设 teachers和students具备many-to-many的关系,那么需要一个Join 表,has_and_belongs_to_many默认该表名字为teachers_students,这 ...

  6. NSTimer 使用小结

    目录 1. NSRunLoopCommonModes和Timer 2. NSThread和Timer 3. GCD中的Timer 返回目录 1. NSRunLoopCommonModes和Timer ...

  7. redis07-----Redis持久化配置

    Redis持久化配置 持久化: 即把数据存储于断电后不会丢失的设备中,通常是硬盘. 常见的持久化方式: 主从:通过从服务器保存和持久化,如mongoDB的replication sets配置. 淘宝是 ...

  8. Hihocoder #1098 : 最小生成树二·Kruskal算法 ( *【模板】 )

    #1098 : 最小生成树二·Kruscal算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用 ...

  9. Hihocoder 之 #1097 : 最小生成树一·Prim算法 (用vector二维 模拟邻接表,进行prim()生成树算法, *【模板】)

    #1097 : 最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可 ...

  10. 数据结构之 栈与队列--- 走迷宫(深度搜索dfs)

    走迷宫 Time Limit: 1000MS Memory limit: 65536K 题目描述 一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方 ...