首页 > 其他分享 >初识多线程

初识多线程

时间:2022-08-19 10:13:22浏览次数:52  
标签:多线程 run TestThread1 初识 线程 main public

初始多线程

实现多线程的方法

  • 继承Thread类(重点)
  • 实现Runnavle接口(重点)
  • 实现Caliable接口(了解,以后可能会学习到!)

多线程分两种 进程 和 线程

进程

每一个程序都是静态的,当程序运行起来那么它就会进入一个进程的状态

每个进程都算是一个单位

线程

1个进程包括若干个线程

线程是程序中执行的线程。Java虚拟机允许应用程序同时执行多个线程

每个线程都是右优先权。具有较高优先级的线程先于优先级较低的线程。每个线程可能也可能不会标记为守护线程。当在某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的优先级,平且当且仅当创建线程是守护进程时才是守护线程

我们目前所观察到或者所了解到的只有一个main方法,它是一个主线程。

代码示范

package com.xhlin.demo01;

/**
 *  线程执行不一马上执行,而是由CPU调度
 */
public class TestThread1 extends Thread {
    @Override
    public void run() {
        //run 方法线程体
        for (int i = 0; i < 20; i++) {
            System.out.println("我在看代码---"+i);
        }
    }

    public static void main(String[] args) {
        TestThread1 thread = new TestThread1();
        // 开启线程
        thread.run();

        //主线程   main
        for (int i = 0; i < 2000; i++) {
            System.out.println("我在看王木木---"+i);
        }

    }
}

image-20220819085414173

image-20220819085557997

它是优先把run()方法执行完毕,然后继续执行main里面的for循环

而我们使用了调用Thread里面的 start的方法

package com.xhlin.demo01;

/**
 *  线程执行不一马上执行,而是由CPU调度
 */
public class TestThread1 extends Thread {
    @Override
    public void run() {
        //run 方法线程体
        for (int i = 0; i < 200; i++) {
            System.out.println("我在看代码---"+i);
        }
    }

    public static void main(String[] args) {
        TestThread1 thread = new TestThread1();
        // 开启线程
        thread.start();

        //主线程   main
        for (int i = 0; i < 200; i++) {
            System.out.println("我在看王木木---"+i);
        }

    }
}

image-20220819090243875

image-20220819090310541

标签:多线程,run,TestThread1,初识,线程,main,public
From: https://www.cnblogs.com/xhlin/p/16601056.html

相关文章

  • JAVA之线程及多线程实现
    java的线程是什么1线程是一个程序的一条执行路径。我们之前启动程序后。main方法其他是一条独立的执行路径。2JAVA的多线程JAVA的多线程是指从软硬件实现多条执行路......
  • 初识Linux和安装虚拟机
    1、初识LinuxUNIX是一个计算机操作系统,一个用来协调、管理和控制计算机硬件和软件资源的控制程序。UNIX操作系统的特点:多用户和多任务a)多用户表示在同一时刻可以有多......
  • 初识JAVA
    初识JAVA Java诞生C语言1972年指针,内存管理C++1982年兼容C语言java1995年语法像,无指针内存管理,可移植,高性能版本包含SE标准版(桌面,控制台) 基础ME嵌......
  • [记]Rust在多线程里使用串口
    1.toml[dependencies]serial="0.4.0"encoding="0.2.33"--usestd::io::{Read,Write};usestd::sync::{Arc,Mutex};usestd::thread;usestd::time::Dura......
  • 记录QT QSqlDatabase SQLite 多线程使用时报错..
    首先QSqlDatabase同一个实例,不能多线程使用.如果多线程使用,需要给每个线程创建一个QSqlDatabase实例,一般是用Map维护各个线程实例链接,key是线程ID,value就是QSqlDa......
  • 多线程.线程同步
    同步方法:synchronized同步块:synchronized(Obj){}并发:多个线程操作同一个资源队列和锁每个对象都有一个锁,sleep不会释放锁由于同一进程的多个线程共享同一块存储空间......
  • 多线程.守护线程
    daemon守护线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕如,后台记录操作日志,监控内存,垃圾回收等待...package......
  • 关于多线程操作单个变量进行加1问题的分析
    关于多线程操作单个变量进行加1问题的分析  摘要:在多线程的学习中,我们经常会接触到一个例子,这个例子也是一个重要的面试题,在此我详细的分析这个问题。  问题:我们现有......
  • 多线程-浅析线程安全
    多线程-共享模型之管程本文章是根据黑马JUC课程编写,记录的笔记1共享带来的问题在平常开发中,很多时候都会遇到共享数据的问题,比如售票,库存。那么如何就会引出一个疑......
  • 多线程.线程优先级
    Priority优先级线程优先级用数字表示,范围从1~10Thread.MIN_PRIORITY=1;Thread.MAX_PRIORITY=10;Thread.NORM_PRIORITY=5;使用以下方式改变或获取优先级:g......