多线程01.newThread的方式创建线程

1.java应用程序的main函数是一个线程,是被jvm启动的时候调用,线程的名字叫main
2.实现一个线程,必须创建一个thread实例,override run方法,并且调用start方法。
3.在jvm启动后,实际 上有多个线程,但是至少有一个非守护线程。
4.当你调用一个线程start方法的时候,此时至少有两个线程,一个是调用你的线程,还有一个是执行run方法的线程
5.线程的生命周期分为new,runnable,running,block,termate.
public class Mythread {
    public static void main(String[] args) {

        //使用匿名内部类的方式执行多线程
     Thread th1= new Thread("custom"){
         @Override
         public  void run(){
        for(int i=0;i<100;i++){
            System.out.println(Thread.currentThread().getName()+"使用匿名内部类的方式创建多线程=>"+i);
        }
         }

     };//start调用了底层c++的方法,重写run方法,使用的是模板方法模式。
     th1.start();
        th1.start();//不能调用start两次
        for(int i=0;i<100;i++){
            System.out.println(Thread.currentThread().getName()+"使用普通的main进行打印=>"+i);
        }

    }
}

模板方法模式案例:

public abstract class TemplateMethod {
    public final  void print(String message){
        System.out.println("###################");
        wrapPrint(message);
        System.out.println("###################");
    }

    protected abstract void wrapPrint(String message);

    public static void main(String[] args) {
        TemplateMethod t1=    new TemplateMethod(){
            @Override
            protected  void wrapPrint(String message){
                System.out.println("##"+message+"##");
            };
        };
        t1.print("hello thread");
    }
}

原文地址:https://www.cnblogs.com/q1359720840/p/10647758.html

时间: 2024-08-03 09:35:24

多线程01.newThread的方式创建线程的相关文章

Java多线程:实现Runnable接口创建线程方式详解

先看例子: /**实现Runnable接口创建线程步骤: * 1.创建一个实现Runnable接口的类 * 2.重写Runnable类中抽象的run()方法 * 3.创建实现类的对象 * 4.声明Thread类,同时将实现类对象作为参数传递 * 5.用Thread类的对象调用start() */ //例子:多线程售票(暂未安全同步) class MyThread implements Runnable{ private int num = 100; public void run(){ whil

python 以面向对象的方式创建线程 实现售票系统

---恢复内容开始--- 通过面向对象的方法实现多线程,其核心是继承threading.Thread类.我们自己定义了一个类BoothThread, 这个类继承自thread.Threading类,通过修改Thread类的run()方法来定义线程所要执行的命令. 1 import threading # Python主要通过标准库中的threading包来实现多线程 2 import time 3 import os 4 5 #作为间隔 每次调用间隔0.5s 6 def doChore(): 7

Java多线程之~~~使用ThreadPoolExecutor来创建线程

以前我们创建线程的时候都是主动的new一个Thread,然后调用他们的start方法,但是如果线程非常多,任务也非 常多的时候,这样写就会显得非常麻烦,当然可能效率也不是很高,Java给我们提供了叫线程创建器这个样概念的类, 他可以帮助我们管理这些线程,你做的就是编写好代码,然后交给他,她就会自动帮你运行. 当然,带cache的threadpool 对于死掉的线程重新调用,在性能上也会有非常好的表现,但是不能将太多的线程交 给他管理,否则就会把系统拖垮,下面我们来做一个例子. package c

IOS 创建和使用多线程的6种方式

非原创  文字来自:http://www.cnblogs.com/yuanjianguo2012/p/3725480.html   纯属复制 进程和线程概念: 一个程序包含一个以上的进程,而一个进程又可以包含一个以上的线程,每一个进程都有自己独立的内存空间,相应的一个进程中的所有线程都共享该内存空间. 进程:是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的资 源分配单元,也是基本的执行单元.独立的地址空间使得不同的进程

Java中创建线程用第几种方式

2015年11月19日10:16:33 作者:数据分析玩家 //用第一种方法创建线程:每个线程处理的是不同的资源//每个线程分别对应20张电影票,之间并无任何关系,这就说明每个线程之间是平等的,没有优先级关系class Tc extends Thread { private int tickets = 20;//每个线程各自卖20张票 public String name ; public Tc(String name) { this.name = name; } public void run

并发编程(壹):创建线程的三种方式及其对比

创建线程的三种方式及其对比 1. 继承 Thread类 (1). 继承Thread类.并重写run()方法,该方法无参数,无返回值: (2). 创建子类实例,并实例化对象: (3). 通过start()方法启动,注意:不是通过run()方法启动. public class ThreadDemo extends Thread{ public void run(){ System.out.println("继承Thread创建线程的."); } } public class ThreadA

创建线程的两种方式比较Thread VS Runnable

1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 1 public class MyThread extends Thread{ 2 @Override 3 public void run() { 4 // TODO Auto-generated method stub 5 6 } 7 } 8 //线程使用 9 MyThread mt = new MyThread(); //创建线程 10 mt.start(); //启动线程 另外一种方式是实现Runnabl

Java中创建线程的两种方式

1.定义实现Runnable接口的线程类,步骤如下: (1)创建实现了Runnable接口的线程类Runner: (2)重写Runnable接口的run()方法,用于定义线程的运行体:(Runnable接口只有这一个方法) (3)实例化线程类Runner: (4)创建线程实例,并将线程类Runner的实例传递给它作为构造函数的参数: (5)启动线程: 代码如下所示: 1 public class TestThread { 2 public static void main(String args

高并发之——从源码角度分析创建线程池究竟有哪些方式

前言 在Java的高并发领域,线程池一直是一个绕不开的话题.有些童鞋一直在使用线程池,但是,对于如何创建线程池仅仅停留在使用Executors工具类的方式,那么,创建线程池究竟存在哪几种方式呢?就让我们一起从创建线程池的源码来深入分析究竟有哪些方式可以创建线程池. 使用Executors工具类创建线程池 在创建线程池时,初学者用的最多的就是Executors 这个工具类,而使用这个工具类创建线程池时非常简单的,不需要关注太多的线程池细节,只需要传入必要的参数即可.Executors 工具类提供了