首页 > 其他分享 >多线程概念

多线程概念

时间:2024-08-19 20:19:35浏览次数:8  
标签:多线程 优先级 Thread 概念 调用 线程 执行

package com.shujia.day19;

/*
    多线程:
        进程:
            正在运行的程序,是系统进行资源分配和调用的独立单位。
            每一个进程都有它自己的内存空间和系统资源。
            理解:一个正在运行的软件
        线程:
            是进程中的单个顺序控制流,是一条执行路径
            一个进程如果只有一条执行路径,则称为单线程程序。
            一个进程如果有多条执行路径,则称为多线程程序。
            举例:阿里云盘(进程)中多个同时进行的任务,每一个任务可以看作一个线程

    1、如何创建一个线程对象呢?
        a. 自定义线程类继承Thread类,重写run方法
        b. 自定义线程类实现Runnable接口,实现run方法

    2、如何启动一个线程呢?
        调用start()方法启动

    Thread无参构造方法
        Thread() 分配一个新的 Thread对象。


    注意:
        1、启动一个线程的时候,若直接调用run方法,仅仅是普通的对象调用方法,按照自上而下的顺序执行,底层不会额外的创建一个线程再执行
        2、从执行的结果上来看,java线程之间是抢占式执行的,谁先抢到cpu执行权谁就先执行
        3、每次运行的结果顺序不可预测的,完全随机的
        4、每个线程都有优先权。 具有较高优先级的线程优先于优先级较低的线程执行。

    Thread类中的成员方法:
        1、public final String getName()  获取线程对象的名字,默认是通过调用Thread无参构造方法获取的名字,从0开始
        2、设置线程对象名字的方式:
            a. 通过父类的有参构造方法,在创建线程对象的时候设置名字
            b. 线程对象调用setName(String name)方法,给线程对象设置名字
        3、获取线程的等级
            getPriority() 默认优先级都是5
        4、设置线程优先级,setPriority(int i),在启动之前设置  [1,10]
            注意不是优先级高的一定先执行,只是可能性变高了。



 */
class MyThread1 extends Thread {
    MyThread1() {
    }


    //public Thread(String name)
    MyThread1(String name) {
        super(name);
    }

//    MyThread1(){
//        //super()
//    }


    @Override
    public void run() {
        //将来线程启动后需要执行的逻辑
        for (int i = 1; i <= 200; i++) {
            System.out.println(this.getName() + " - Hello word " + i);
        }
    }
}

public class ThreadDemo1 {
    public static void main(String[] args) {
        //创建一个自己的线程对象
//        MyThread1 t1 = new MyThread1("徐思远"); // Thread-0
        MyThread1 t1 = new MyThread1();
        t1.setName("徐思远");
        t1.setPriority(1);
        System.out.println("t1: "+t1.getPriority());
        //创建一个自己的线程对象
//        MyThread1 t2 = new MyThread1("魏一民"); // Thread-1
        MyThread1 t2 = new MyThread1();
        t2.setName("民哥");
        t2.setPriority(10);
        System.out.println("t2: "+t2.getPriority());
//        t1.run();
//        t2.run();
        t1.start();
        t2.start();
    }
}

标签:多线程,优先级,Thread,概念,调用,线程,执行
From: https://www.cnblogs.com/qiwei-bigdata/p/18368026

相关文章

  • RabbitMQ消息队列:概念、单节点和集群示例
    目录消息队列概念主流的消息队列消息队列名词(1)Broker(2)Topic(3)Producer(4)Consumer(5)Queue(6)Message消息队列中两种工作模式Point-to-Point(PTP、点到点)Pub/Sub消息队列的缺点系统可用性降低系统复杂性提高数据一致性无法保证RabbitMQ相关术语(1)生产者(2)消费者(3)队......
  • 辨析C++多态的概念
    1.什么是多态我们都知道面向对象语言的三大特性,封装,继承,多态;封装:封装就是将数据封装在一个类里面,提供对数据更好的管控;继承:继承就是类设计层次的代码复用。那多态是什么呢?多态是一种现象,这种现象要通过封装和继承才能实现。多态就是在同一继承体系下,不同的类的对象调用相同......
  • Xfce漫游(1) - Xfce与相关概念
    用了好几年Xfce桌面了,但是从来没有仔细研究过Xfce底下相关的运行逻辑,最近才对相关的底层概念感兴趣并去尝试了解了一下,但是它的体系架构以及复杂的依赖关系令初来乍到者望而却步。没办法,写点什么方便理解吧。这一系列文章主要是探讨Xfce底层实现的,不会过多聚焦于美化之类的话题。......
  • @Async使用ThreadPoolTaskExecutor 多线程
    SpringBoot中的线程池ThreadPoolTaskExecutor,@Async的使用线程池@Configuration@EnableAsyncpublicclassExcutorConfig{@Bean(name="ThreadPoolTaskExecutor")publicThreadPoolTaskExecutorThreadPoolTaskExecutor(){ThreadPoolTaskExecutorex......
  • C++中的多线程编程和锁机制
    二、多线程、锁2.1C语言线程库pthread(POSIXthreads)2.2.1线程创建pthread_create#include<pthread.h>pthread_tthread;ThreadDataargs={1,"Hellofromparameterizedthread"};intresult=pthread_create(&thread,attr,function,args); //线程创建即......
  • Kubernetes 的架构和核心概念
    Kurbernetes是Google旗下的容器跨主机编排工具。Kurbernetes可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。一、Kurbernetes集群架构与组件Kubernetes采用主从分布式架构,节点在角色上分为Maste和Node。KubernetesMaster是控制节点,负责k8s集群的调......
  • 【微服务】微服务服务注册中心概念
    一、定义与功能定义:微服务服务注册中心是一个用于存储服务实例信息、实现服务注册与发现、支持负载均衡和配置管理等功能的系统组件。在微服务架构中,系统被拆分成多个独立的服务,这些服务之间需要进行通信和协作,注册中心正是实现这一目的的关键。主要功能:服务注册与注销:服务......
  • JavaEE篇:多线程(1)
    一认识线程(Thread)1.1概念1.1.1线程是什么?线程被创建出来是为了完成分配给它的任务。线程又称轻量级进程,是操作系统的基本调度单位。一个线程就是一个执行流。线程的创建销毁和切换都比进程更加的方便。进程是操作系统分配资源的基本单位,线程的创建和释放不涉及资源分配......
  • Thread-多线程
    多线程并发与并行(了解)并行(parallel):指多个事件任务在同一时刻发生(同时发生)。指在同一时刻,有多条指令在多个处理器上同时执行。单核CPU同一时刻只能处理一条指令,所以单核CPU做不到并行处理。并发(concurrency):指两个或多个事件在同一个微小的时间段内发生。指在同一个时刻只能有一......
  • java基础概念笔记
    java基础概念1.注释分类单行注释://注释信息多行注释:/*注释信息*/文档注释:/**注释信息*/但是一般不用2.关键字2.1关键字的特点关键字的字母全部小写常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。注意:关键字很多,不用刻意去记。abstracta......