线程创建之继承(一)

一、继承实现多线程

Rabit.java

package cn.thread;
/*
 * 模拟龟兔赛跑
 * 1.创建多线程 继承Thread   +重run(线程体)
 */
public class Rabit extends Thread {

    @Override
    public void run() {
        for(int i=0;i<100;i++) {
            System.out.println("兔子跑了"+i+"步");
        }
    }

}
class Tortoise extends Thread {

    @Override
    public void run() {
        for(int i=0;i<100;i++) {
            System.out.println("乌龟跑了"+i+"步");
        }
    }

}

RabitApp.java

package cn.thread;

public class RabitApp {
    public static void main(String[] args) {
        //1.创建子类对象
        Rabit rab=new Rabit();
        Tortoise tor=new Tortoise();
        //2.调用start()方法
        rab.start();
        tor.start();

        for(int i=0;i<1000;i++) {
            System.out.println("main--"+i);
        }

    }
}

效果

二、Runnable接口实现多线程

与继承方式比较:

1.静态代理(StaticProxy)

StaticProxy.java

package cn.thread;
/*
 * 静态代理 设计模式
 * 1、真实角色
 * 2、代理角色    持有真实角色的引用
 * 3、二者实现相同的接口
 */
public class StaticProxy {
    public static void main(String[] args) {
        //创建真实角色
        you y=new you();
        //创建代理角色
        WeddingCompany Company=new WeddingCompany(y);
        Company.marry();
    }
}
//接口
interface Marry{
    public abstract void marry();
}
//真实角色
class you implements Marry{

    @Override
    public void marry() {
        System.out.println("结婚了");

    }

}
//代理角色
class WeddingCompany implements Marry{
    private Marry you;

    public WeddingCompany() {

    }

    public WeddingCompany(Marry you) {
        this.you = you;
    }
    private void before() {
        System.out.println("布置猪窝。。。");
    }
    private void after() {
        System.out.println("收拾猪窝.。。。");
    }
    @Override
    public void marry() {
        before();
        you.marry();
        after();

    }

}

效果:

原文地址:https://www.cnblogs.com/ssxblog/p/11240159.html

时间: 2024-08-04 13:27:40

线程创建之继承(一)的相关文章

线程创建_同步_通信

目录 1. 基本概念:程序.进程.线程 2. 并行和并发 3. 创建线程的两种方式 3.1 通过继承Thread方式 3.1.1 步骤: 3.1.2 两个问题 3.1.3 案例演示 3.2 通过实现Runnable的方式 3.2.1 步骤 3.2.2 代码演示 3.3 两种方式的比较 4. Thread类中常用方法 4.1 常用方法 4.2 线程的调度 4.3 线程的优先级 4.4 线程的分类 5. 线程的声明周期 5.1 生命周期的几个状态 5.2 线程状态转换图 6. 线程的同步 6.1 线

015 线程创建

线程  ● 进程启动 ○ 进程内核对象 进程空间 ○ 线程 ● 可以通过IDE设置入口函数 ● 自己创建线程 ○ 创建线程函数 CreateThread() ○ 新建线程内核对象(结构体) ● 线程 ○ 分配一块内存空间,作为当前线程的堆栈 ○ 两条在同一进程内线程,都是隔离的 ○ 线程他们是封闭的,每个线程都有自己的一个堆栈 ○ 但是都是属于当前进程内的堆栈 ○ 进程赋予了线程交互的能力 ● 线程创建 1 HANDLE WINAPI CreateThread( 2 _In_opt_ LPSEC

MFC 线程创建方式

MFC 分UI线程和工作线程,一般现在的应用程序都是一个主UI线程和N个工作线程来完成工作.主UI线程获取到工作线程发送的信息来刷新界面. 不过因为工作需要,MFC有要维护的项目,因此就学习一下MFC创建UI线程,使用工作线程的方式. 1.UI线程,继承CWinThread类  1 class CAddDeviceApp : public CWinThread 2 { 3     DECLARE_DYNCREATE(CAddDeviceApp) 4 protected: 5     CAddDe

多线程【Thread、线程创建】

主线程:执行主方法的线程,就叫做主线程 单线程程序:程序从mani开始从上到下依次运行 程序从main方法开始运行,JVM运行main方法,会找操作系统 开辟一条通向cpu的执行路径,cpu可以通过这条路径来执行main方法 这条路径有一个名字叫主(main)线程 创建线程方式一继承Thread类 实现步骤: 1.创建Thread类的子类 2.重写Thread类中的run方法,设置线程的任务 3.创建Thread类的子类对象 4.调用Thread类中的start方法开启一个新的线程,执行run方

Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)

线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public class Thread implements Runnable { /* What will be run. */ private Runnable target; ...... /** * Causes this thread to begin execution; the Java Virtu

理解Android线程创建流程(转)

/android/libcore/libart/src/main/java/java/lang/Thread.java /art/runtime/native/java_lang_Thread.cc /art/runtime/native/java_lang_Object.cc /art/runtime/thread.cc /system/core/libutils/Threads.cpp /system/core/include/utils/AndroidThreads.h /framewor

pthread_create线程创建的过程剖析(转)

概述 在Linux环境下,pthread库提供的pthread_create()API函数,用于创建一个线程.线程创建失败时,它可能会返回ENOMEM或EAGAIN.这篇文章主要讨论线程创建过程中碰到的一些问题和解决方法. 创建线程 首先,本文用的实例代码example.c: /* example.c*/ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h&g

JAVA并发编程-线程创建(二)

对于线程的创建及更加详细的信息可以参看博客<JAVA--线程>,下面是对线程创建的细化及简单再实现. 在java中如果要创建线程的话,一般有两种方式:1)继承Thread类:2)实现Runnable接口. 方式一:继承Thread类 MyThread: package com.tgb.hjy; public class MyThread extends Thread{ private String name; public MyThread(String name){ this.name=na

【搞懂Java多线程之一】多线程相关概念,线程生命周期以及线程创建方法

楼主决定要好好地把Java的多线程给看一下,所以特地来写下博客,内容大部分都是摘抄自网上看到的资料或者书籍,能给出链接的我会给出链接.嗯,希望大家跟楼主一起抱团,加油加油(^ω^)也欢迎关注楼楼的个人博客主页www.anycodex.com. 1.多线程相关概念 程序:为了完成特定任务,用某种语言编写的一组指令集合. 进程:运行中的程序,系统跳读和资源分配的一个独立单位,操作系统会为每一个进程分配一段内存空间. 线程:比进程更小的执行单位,每一个进程可能有多个线程,线程需要放到一个进程中才能执行