Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >执行start()的顺序不代表线程执行的顺序

执行start()的顺序不代表线程执行的顺序

作者头像
葆宁
发布于 2019-04-18 07:18:46
发布于 2019-04-18 07:18:46
2.7K00
代码可运行
举报
文章被收录于专栏:FREE SOLOFREE SOLO
运行总次数:0
代码可运行

执行start()的顺序不代表线程执行的顺序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.omg.CORBA.PUBLIC_MEMBER;
/**
 * Created by wuyupku on 2019-04-12 12:24
 *
 * @Beijing CHINA
 */
public class Demo01 {
    public static void main(String[] args) {
        mythread thread1 = new mythread(1);
        mythread thread2 = new mythread(2);
        mythread thread3 = new mythread(3);
        mythread thread4 = new mythread(4);
        thread1.start();
        thread2.start();
        thread3.start();
        thread4.start();
        System.out.println("运行结束");
    }
}
class mythread extends Thread{
    private int i;
    public mythread(int i){
        super();
        this.i = i;
    }
    @Override
    public void run(){
        super.run();
        System.out.println(i);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年04月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
初学者第67节多线程之单例模式(十)
java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。   单例模式有以下特点:   1、单例类只能有一个实例。   2、单例类必须自己创建自己的唯一实例。   3、单例类必须给所有其它对象提供这一实例。
用户5224393
2019/08/20
3440
java中Atomic类之AtomicBoolean
在java.util.concurrent.atomic包下,有AtomicBoolean , AtomicInteger, AtomicLong, AtomicReference等类,它们的基本特性就是在多线程环境下,执行这些类实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程进入。
程序新视界
2022/05/06
2490
初学者第60节之多线程Runnable(二)
JDK说的:Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。实现类必须实现一个名称为 run 的无参数方法。
用户5224393
2019/08/20
3300
Java多线程不共享数据
import org.omg.CORBA.PUBLIC_MEMBER; /** * Created by wuyupku on 2019-04-12 12:24 * * @Beijing CHINA */ public class Demo01 { public static void main(String[] args) { mythread thread1 = new mythread("a"); mythread thread2 = new myth
葆宁
2019/04/18
1.2K0
Java多线程不共享数据
Java多线程-线程状态
线程状态 6个状态定义:java.lang.Thread.State New: 尚未启动的线程的线程状态。 Runnable: 可运行线程的线程状态,等待CPU调度。 Blocked: 线程阻塞等待监视器锁定的线程状态。处于synchronized同步代码块或方法中被阻塞。 Waiting: 等待线程的线程状态。下列不带超时的方式:Object.wait、Thread.join、LockSupport.park Timed Waiting: 具有指定等待时间的等待线程的线程状态。下列超时的方式:Thread
小码农薛尧
2019/08/27
9690
Java多线程-线程状态
Java多线程基本使用及模拟购票
Runnable的代码可以被多个线程(Thread实例)共享,适合多个线程处理同一资源的问题,而继承Thread类不会,用两种方式写个例子证明一下
itze
2022/10/31
4270
Java多线程基本使用及模拟购票
2.2synchronized同步语句块
使用synchronized虽然能够避免不同步的现象出现,但是也会出现弊端,比如代码执行时间过长,那么其他线程就必须等待该线程执行完毕释放锁之后才能拿到锁。 面对这种问题可以使用同步代码块来解决。 2
用户1134788
2018/01/05
9360
2.2synchronized同步语句块
java多线程系列_用Thread类创建线程(2)
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread类的构造方法被重载了八次,构造方法如下:
Hongten
2018/09/13
5290
高并发之——线程的执行顺序
调用Thread的start()方法启动线程时,线程的执行顺序是不确定的。也就是说,在同一个方法中,连续创建多个线程后,调用线程的start()方法的顺序并不能决定线程的执行顺序。
冰河
2020/10/29
7280
高并发之——线程的执行顺序
线程状态
代码测试 第一种状态切换 - 新建 -> 运行 -> 终止 // 第一种状态切换 - 新建 -> 运行 -> 终止 System.out.println("#######第一种状态切换 - 新建 -> 运行 -> 终止################################"); Thread thread1 = new Thread( new Runnable() { @Override public void run() { System.out.println("thread1当前状态:" + Thread.currentThread().getState().toString()); System.out.println("thread1 执行了"); } }); System.out.println("没调用start方法,thread1当前状态:" + thread1.getState().toString()); thread1.start(); Thread.sleep(2000L); // 等待thread1执行结束,再看状态 System.out.println("等待两秒,再看thread1当前状态:" + thread1.getState().toString()); // thread1.start(); TODO 注意,线程终止之后,再进行调用,会抛出IllegalThreadStateException异常 输出结果: #######第一种状态切换 - 新建 -> 运行 -> 终止################################ 没调用start方法,thread1当前状态:NEW thread1当前状态:RUNNABLE thread1 执行了 等待两秒,再看thread1当前状态:TERMINATED 第二种:新建 -> 运行 -> 等待 -> 运行 -> 终止(sleep方式) System.out.println( "############第二种:新建 -> 运行 -> 等待 -> 运行 -> 终止(sleep方式)###########################"); Thread thread2 = new Thread( new Runnable() { @Override public void run() { try { // 将线程2移动到等待状态,1500后自动唤醒 Thread.sleep(1500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("thread2当前状态:" + Thread.currentThread().getState().toString()); System.out.println("thread2 执行了"); } }); System.out.println("没调用start方法,thread2当前状态:" + thread2.getState().toString()); thread2.start(); System.out.println("调用start方法,thread2当前状态:" + thread2.getState().toString()); Thread.sleep(200L); // 等待200毫秒,再看状态 System.out.println("等待200毫秒,再看thread2当前状态:" + thread2.getState().toString()); Thread.sleep(3000L); // 再等待3秒,让thread2执行完毕,再看状态 System.out.println("等待3秒,再看thread2当前状态:" + thread2.getState().toString()); 输出结果: ############第二种:新建 -> 运行 -> 等待 -> 运行 -> 终止(sleep方式)########################### 没调用start方法,thread2当前状态:NEW 调用start方法,thread2当前状态:RUNNABLE 等待200毫秒,再看thread2当前状态:TIMED_WAITING thread2当前状态:RUNNABLE thread2 执行了 等待3秒,再看thread2当前状态:TERMINATED 第三种:新建 -> 运行 -> 阻塞 -> 运行 -> 终止 System.out.println("############第三种:新建 -> 运行 -> 阻塞 -> 运行 -> 终止#####################
CodingDiray
2019/09/25
8190
线程状态
JAVA之线程状态(二)
PS:通过API,演示前面说的几种状态,通过图和代码让大家对这6种状态了解透彻,线程状态的知识点就讲解到这里。下次咱们继续说说线程,一起说说线程终止。
IT架构圈
2019/12/23
4540
Java 指定线程执行顺序(三种方式)
可以看到线程的启动按顺序执行了。共享对象锁,可以保证每个方法只能同时有一个线程进入,配合wait和notifyAll方法,可以启动或者唤醒线程。
九州暮云
2019/08/21
9550
面试官:java基础怎么样?多线程一定会引发多线程安全问题吗?说说你的理解
java基础对于学习安卓是很重要的,比如说线程,多线程。我们做安卓开发可能不太需要去研究高并发这些高深的问题,但是基础的知识要掌握,特别是要理解为什么会这样?以及它的使用场景。本篇文章主要是结合常规面试题去讲解基础。现在来看看一些非常基础的面试题。
Android技术干货分享
2020/03/20
4780
面试官:java基础怎么样?多线程一定会引发多线程安全问题吗?说说你的理解
Java中的多线程基本介绍
在 Java 中,多线程是指同时执行两个或多个线程以最大限度地利用 CPU 的过程。 Java 中的线程是一个轻量级进程,只需要较少的资源即可创建和共享进程资源。
从大数据到人工智能
2022/02/08
7140
Java并发编程之CountDownLatch
在日常的开发中,可能会遇到这样的场景:开启多个子线程执行一些耗时任务,然后在主线程汇总,在子线程执行的过程中,主线程保持阻塞状态直到子线程完成任务。
布禾
2021/04/09
2810
synchronized到底锁住的是谁?
本文代码仓库:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/sync
用户1148394
2019/06/15
5210
让线程按顺序执行8种方法
1.早上;2.测试人员、产品经理、开发人员陆续的来公司上班;3.产品经理规划新需求;4.开发人员开发新需求功能;5.测试人员测试新功能。
java架构师
2019/04/09
1.1K0
多线程的创建方式以及及Thread类详解
前两种方式都存在一个问题:重写的run方法均不能直接返回结果,不适合需要返回线程执行结果的场景。而通过实现Callable接口则可以做到这一点。
用户11369558
2024/11/20
2680
多线程的创建方式以及及Thread类详解
1.10线程的优先级
用户1134788
2018/01/05
9280
1.10线程的优先级
2.1synchronized同步方法
本文介绍了多线程学习中的同步、通信、死锁、资源竞争等问题,并通过实例进行讲解。
用户1134788
2018/01/05
1.2K0
2.1synchronized同步方法
相关推荐
初学者第67节多线程之单例模式(十)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验