线程概述以及线程的两种创建方式

package countThread;

public class CountThread extends Thread{

    private String name;

    public CountThread(String name) {
        super(name);
    }

    /**
     * 线程的执行体
     *
     * 创建新执行线程有两种方法,一种方法是将类声明为Thread的子类,该子类应该重写Thread类中的run方法
     * 接下来可以分配并且启动该子类的实例
     */
    @Override
    public void run() {
        for(int i=0;i<50;i++) {
            System.out.println(this.getName()+"hello"+i);
        }
    }

}
package countThread;

public class CountThread2 implements Runnable{

    /**
     * 线程的执行体
     *
     * 创建新执行线程有两种方法,一种方法是将类声明为Thread的子类,该子类应该重写Thread类中的run方法
     * 接下来可以分配并且启动该子类的实例
     */
    @Override
    public void run() {
        for(int i=0;i<50;i++) {
            //输出线程的名字
            System.out.println(Thread.currentThread().getName()+"hello"+i);
        }
    }

}
package countThread;

public class Demo2 {
    public static void main(String[] args) {
        CountThread ct = new CountThread("我是1");
        CountThread ct1 = new CountThread("我是2");
        /*
        ct.setName("线程1");
        ct1.setName("线程2");
        */
        //启动线程
        /**
         *  ct.run()!!!不是这么调用的,这样只是调用了run方法
         */
        ct.start();
        ct1.start();
    }
}
package countThread;

public class Demo3 {
    public static void main(String[] args) {
        CountThread2 ct = new CountThread2();
        Thread t1 = new Thread(ct,"123");
        CountThread2 ct1 = new CountThread2();
        Thread t2 = new Thread(ct1,"456");
        t1.start();
        t2.start();

    }
}

原文地址:https://www.cnblogs.com/java-jiangtao-home/p/9374999.html

时间: 2024-11-05 13:35:12

线程概述以及线程的两种创建方式的相关文章

Java---11---多线程的两种创建方式

多线程的两种创建方式: 下面这些东西是API文档中的: public class Thread extends Object implements Runnable 线程 是程序中的执行线程.Java 虚拟机允许应用程序并发地运行多个执行线程. 每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程.每个线程都可以或不可以标记为一个守护程序.当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护

String变量的两种创建方式

在java中,有两种创建String类型变量的方式: String str01="abc";//第一种方式 String str02=new String("abc")://第二种方式 第一种方式创建String变量时,首先查找JVM方法区的字符串常量池是否存在存放"abc"的地址,如果存在,则将该变量指向这个地址,不存在,则在方法区创建一个存放字面值"abc"的地址. 第二种方式创建String变量时,在堆中创建一个存放&q

java多线程总结一:线程的两种创建方式及优劣比较

1.通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法.在run()方法中加入具体的任务代码或处理逻辑. (2).创建Runnable接口实现类的对象. (3).创建一个Thread类的对象,需要封装前面Runnable接口实现类的对象.(接口可以实现多继承) (4).调用Thread对象的start()方法,启动线程 示例代码: [java] view plaincopy <span style="font-size:16px;&

java多线程总结一:线程的两种创建方式及比较

1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应用程序运行时,java解释器为main()方法启动一个线程. 2.并行与并发: (1)并发:在单处理器系统中,多个线程共享CPU时间,而操作系统负责调度及分配资源给它们. (2)并行:在多处理器系统中,多个处理器可以同时运行多个线程,这些线程在同一时间可以同时运行,而不同于并发,只能多个线程共享CP

Thread -线程的两种创建方式

package cn.learn.thread.Thread; /* 实现Runnable必须重写run()方法,一般推荐用Runnable实现 */ public class RunnableImpl implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()+"执行"); } } package cn.learn.thread.Thre

java中线程的两种创建方式

第一种:继承java.lang.Thread类.然后重写run方法 例如我们模拟一个龟兔赛跑 1 package edu.aeon.thread; 2 3 /** 4 * 说明:模拟龟兔赛跑 5 * 6 * @author lzj 7 * 8 */ 9 public class RabbitThread extends Thread { 10 @Override 11 public void run() { 12 for (int i = 1; i <= 100; i++) { 13 Syste

关于多线程的两种创建方式的用法和选择

本文分别说明的继承Thread类和Runnable接口的两种方式.仅为个人见解,如有不妥还清指出. 先说一下并发和并行, 并行:多个任务可以同时做,常用与任务之间比较独立,互不影响.相当于很多人做很多件事(例学校篮球场,很多学生在不同的场地打球) 并发:相当于很多人在一个篮球场打球,只能轮着上因为只有一片场地. 首先第一种是继承Thread类的方法 直接上代码,实现的是火车票卖票的问题 class Windows extends Thread{ private static int ticket

Android对话框的两种创建方式

在Android中,我们可以通过两种方式来创建对话框: 1. 借助Dialog类,或它的子类(如AlertDialog) 2. 使用Activity的对话框主题 使用Dialog类: 让我们先来看下如何借助Dialog类创建对话框,首先,我们需要定义一个继承了Dialog类的子类: class MyDialog extends Dialog { public MyDialog(Context context) { super(context); } } 然后,为这个对话框的内容定义一个布局文件,

ANDROID中FRAGMENT的两种创建方式

fragment是Activity中用户界面的一个行为或者是一部分.你可以在一个单独的Activity上把多个Fragment组合成为一个多区域的UI,并且可以在多个Activity中再使用.你可以认为fragment是activity的一个模块零件,它有自己的生命周期,接收它自己的输入事件,并且可以在Activity运行时添加或者删除. 两个概念:Fragment.宿主 fragment的生命周期直接受其宿主activity的生命周期的影响.例如,一旦activity被暂停,它里面所有的fra