功能需求:

    Thread-0线程:打印 1 2 3 4 5 6

    Thread-1线程:打印1 1 2 3 4 5 6

先看一个为实现(功能需求的案例)

package android.java;

// 定义打印任务(此对象只是打印任务,不是线程)
class PrintRunnable implements Runnable { @Override
public void run() {
for (int i = 1; i <= 6; i++) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
} public class TestControlThread { public static void main(String[] args) { // 实例化 打印任务Runnable
Runnable printRunnable = new PrintRunnable(); // 创建第一个线程
Thread thread1 = new Thread(printRunnable); // 把打印任务Runnable 给 线程执行 // 创建第二个线程
Thread thread2 = new Thread(printRunnable); // 把打印任务Runnable 给 线程执行 // 启动第一个线程
thread1.start(); // 启动第二个线程
thread2.start();
} }

执行结果:打印的结果每次都可能会不一样,是由CPU随机性决定的;


控制多线程执行顺序

package android.java;

// 定义打印任务(此对象只是打印任务,不是线程)
class PrintRunnable implements Runnable { @Override
public void run() {
for (int i = 1; i <= 6; i++) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
} public class TestControlThread { public static void main(String[] args) throws InterruptedException { // 注意⚠️:main不是重写的方法,所以可以往外抛 // 实例化 打印任务Runnable
Runnable printRunnable = new PrintRunnable(); // 创建第一个线程
Thread thread1 = new Thread(printRunnable); // 把打印任务Runnable 给 线程执行 // 创建第二个线程
Thread thread2 = new Thread(printRunnable); // 把打印任务Runnable 给 线程执行 // 启动第一个线程
thread1.start(); /**
* 取消主线程CPU执行资格/CPU执行权,60毫秒
* 60毫秒后主线程恢复CPU执行资格/CPU执行权 --->>> 在去启动第二个线程时:第一个线程已经执行完毕了,这样就控制线程的顺序了
*/
Thread.sleep(60); // 启动第二个线程
thread2.start();
} }

执行结果:

现在CPU执行 Thread-0  Thread-1  的顺序:

Android-Java控制多线程执行顺序的更多相关文章

  1. Java控制多线程执行顺序

    package net.jasonjiang.thread; import java.io.IOException; public class ThreadTestNew { public stati ...

  2. pthread_create多线程执行顺序诡异现象

    多线程执行顺序诡异现象谈,你不知道的pthread_create 引文:学而时习之,不亦说乎.总是忙于具体项目,业务功能的实现:关于编程本身的技能都要有些生疏了,于是就选择了几个专题做了一次温习,重点 ...

  3. java代码块执行顺序

    父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...

  4. 【Java多线程系列四】控制线程执行顺序

    假设有线程1/线程2/线程3,线程3必须在线程1/线程2执行完成之后开始执行,有两种方式可实现 Thread类的join方法:使宿主线程阻塞指定时间或者直到寄生线程执行完毕 CountDownLatc ...

  5. Android(Java)控制GPIO的方法及耗时分析

    前面两篇分别介绍了通过脚本和C代码读写/sys/class/gpio以控制GPIO.实际项目调试时经常还需要在Java代码里控制GPIO,其实现与C代码类似,唯一不同是Android权限.本文重点介绍 ...

  6. Java获取多线程执行结果方式的归纳与总结

    在日常的项目开发中,我们会经常遇到通过多线程执行程序并需要返回执行结果的场景,下面我们就对获取多线程返回结果的几种方式进行一下归纳,并进行简要的分析与总结. 一.Thread.join 在一些简单的应 ...

  7. Java类的执行顺序

    在Java中一个类包括:构造块.构造方法.静态块.main方法.普通方法. 通过下面的例子将看出一个类中各种方法的执行顺序: /** * @author zhengbinMac */ public c ...

  8. 通过指令码来判断Java代码的执行顺序(++问题与return和finally的问题)

    问题 在<深入理解Java虚拟机>一书中遇到了如下代码: public int method() { int i; try { i = 1; return i; } catch (Exce ...

  9. Java的初始化执行顺序(父类static变量->子类static变量->父类成员变量->父类构造器->成员变量->构造器->main函数)

    1. 引言 了解Java初始化的顺序,有助于理解Java的初始化机制和内存机制. 顺序:父类static变量->子类static变量->父类成员变量->父类构造器->成员变量- ...

随机推荐

  1. Codeforces 791B. Bear and Friendship Condition 联通快 完全图

    B. Bear and Friendship Condition time limit per test:1 second memory limit per test:256 megabytes in ...

  2. Python之路(第十一篇)装饰器

    一.什么是装饰器? 装饰器他人的器具,本身可以是任意可调用对象,被装饰者也可以是任意可调用对象. 强调装饰器的原则:1 不修改被装饰对象的源代码 2 不修改被装饰对象的调用方式 装饰器的目标:在遵循1 ...

  3. java itext 报错 com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H'

    com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' 解决方案 <dependency> ...

  4. CentOS7安装ms8可能出现的错误

    参照<在Centos上安装MS8.0的详细过程>:http://muchong.com/html/201507/9145663.html 安装过程中如果库文件不全,会异常终止.报错情况如下 ...

  5. collection tree protocol

    本文所属图书 > 传感网原理与技术 本书根据<高等院校物联网工程专业发展战略研究报告暨专业规范(试行)>和物联网工程本科专业的教学需要,结合传感网的最新发展及其应用现状编写而成.主要 ...

  6. 2016年3月31日_应化所群体Review

    Review目的: Phonegap的ble插件可以接收到设备发送的信息,但接收并在控制台显示的数据夏一鸣不知道是正确的数据,还是由于编码解码问题导致的乱码问题.此次Review要解决的问题即判断接收 ...

  7. ssh安装

    http://blog.chinaunix.net/uid-20791108-id-3761681.htmlhttp://www.cnblogs.com/mliudong/p/4094519.html ...

  8. 别人的Linux私房菜(3)主机规划与磁盘分区

    磁盘阵列:RAID.将数个硬盘整合成为在操作系统看来是一个硬盘. Linux对笔记本电脑的支持:https://www.linux-laptop.net/ 几乎所有硬件设备存放于/dev/目录. SC ...

  9. sql相同项求和

    select (SELECT O2.ORG_NAME           FROM OUTSOURCE_ORG O2          where o2.org_id = oo.parent_id) ...

  10. 算法工程师B

    美团点评2017校招笔试真题-算法工程师B   1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 ...