1 package com.bytezero.threadexer;
2
3 import javax.sound.midi.Soundbank;
4
5 /**
6 * 测试 Thread中的常用方法
7 * 1.start(); :启动当前线程,调用当前线程的run()
8 * 2.run(); :通常需要重写Thread类中的此方法,将创建的线程的操作声明在此方法中
9 * 3.currentThread():静态方法,返回执行当前代码的线程
10 * 4.getName():获取当前线程的名字
11 * 5.setName():设置当前线程的名字 2种
12 * 6.yield():释放当前CPU的执行权
13 * 7.join():在线程a中调用线程b的jion(),此时线程a就进入了阻塞状态,直到线程b完全执行
14 * 以后,线程a才会结束阻塞状态,继续执行.
15 * 8.stop(): 已过时.当执行此方式时,强制结束当前线程
16 * 9.sleep(long millitime):让当前线程"睡眠"指定的millitime毫秒.在指定的millitime
17 * 毫秒时间内,当前线程是阻塞状态.
18 *10. isAlive(): 判断当前线程是否在存活
19 *
20 *
21 * 线程的优先级:
22 * 1.
23 * MAX_PRIORITY:10
24 * MIN_PRIORITY:1
25 * NORM_PRIORITY:5 ---->默认优先级
26 * 2.如何获取和设置当前线程的优先级
27 * getPriority(): 获取线程的优先级
28 * setPriority(int p): 设置线程的优先级
29 * 高优先级的线程要抢占低优先级线程CPU的执行器,但是只是从概率上讲,高优先级的线程高
30 * 概率的情况下被执行并不意味着只有当高优先级的线程执行完以后,低优先级的线程才执行
31 *
32 *
33 *
34 *
35 *
36 *
37 * @author Bytezero1·zhenglei! Email:420498246@qq.com
38 * create 2021-10-15 10:58
39 */
40 //测试线程的方法
41 class MethodThread extends Thread{
42 @Override
43 public void run() {
44 for (int i = 0; i < 100; i++) {
45 if(i % 2 == 0){
46
47 // try {
48 // sleep(10);
49 // } catch (InterruptedException e) {
50 // e.printStackTrace();
51 // }
52
53 System.out.println(Thread.currentThread().getName()+":"+Thread.currentThread().getPriority()+":" + i);
54 }
55 // if(i % 20 ==0){
56 //// this.yield();
57 // Thread.currentThread().yield();
58 // }
59
60 }
61 }
62
63 //重写 Thread 里面的构造器
64 //通过构造器给线程命名
65 public MethodThread(String name){
66 super(name);
67 }
68 }
69
70 public class ThreadMethodTest {
71 public static void main(String[] args) {
72
73 MethodThread m1 = new MethodThread("Thread: 1");
74 // m1.setName("线程一");
75
76 //设置分线程的优先级
77 m1.setPriority(Thread.MAX_PRIORITY);
78
79 m1.start();
80
81
82 //给主线程命名
83 Thread.currentThread().setName("主线程");
84 Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
85 for (int i = 0; i < 100; i++) {
86 if(i % 2 == 0){
87 System.out.println(Thread.currentThread().getName()+Thread.currentThread().getPriority()+":" + i);
88 }
89
90 // if(i == 20){
91 // try {
92 // m1.join();
93 // } catch (InterruptedException e) {
94 // e.printStackTrace();
95 // }
96 // }
97 }
98 // System.out.println(m1.isAlive());
99 }
100
101 }

............................

Java 多线程------测试 Thread中的常用方法 + 线程的优先级:的更多相关文章

  1. 测试Thread中的常用方法

    package com.yhqtv.java; /* *测试Thread中的常用方法: * 1.start():启动当前线程:调用当前线程的run() * 2.run():通常需要重写Thread类的 ...

  2. 测试Thread中的常用方法:

    测试Thread中的常用方法:start():启动当前线程:调用当前线程的run()run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中currentThread ...

  3. java 多线程: Thread 锁ReentrantLock 常用方法

    注意 reentrantLock 和 同步代码块儿一样,同一个时刻只能一个线程获取锁,也就是共用锁的代码块部分,线程是顺序执行的 ReentrantLock 常用方法 getHoldCount获取当前 ...

  4. java 多线程 2 Thread中start()和run()的区别

  5. Java多线程系列--“基础篇”06之 线程让步

    概要 本章,会对Thread中的线程让步方法yield()进行介绍.涉及到的内容包括:1. yield()介绍2. yield()示例3. yield() 与 wait()的比较 转载请注明出处:ht ...

  6. Java多线程系列--“基础篇”07之 线程休眠

    概要 本章,会对Thread中sleep()方法进行介绍.涉及到的内容包括:1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较 转载请注明出处:http:// ...

  7. Java多线程系列--“基础篇”10之 线程优先级和守护线程

    概要 本章,会对守护线程和线程优先级进行介绍.涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例 转载请注明出处:http://www.cnblogs.com/skyw ...

  8. Java多线程(三)如何创建线程

    点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...

  9. Java多线程(一) 什么是线程

    声明:本系列大多是翻译自https://www.javatpoint.com,加上自己的增删改,尽力写的系统而通俗易懂,后文不再重复声明. 点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更 ...

  10. Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享

    Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com ...

随机推荐

  1. Mixed spaces and tabs

    ykit打包过程中报错信息如下: 报错原因: Mixed spaces and tabs(混合空格和制表符). 大多数代码约定要求使用空格或 tab 进行缩进,因此,一行代码若同时混有 tab缩进和空 ...

  2. 1.10 内存ShellCode注入与格式化

    ShellCode 的格式化与注入功能在实战应用中也尤为重要,格式化Shellcode是指将其转换为可执行的二进制格式,使其能够在内存中运行.注入Shellcode是指将格式化的Shellcode注入 ...

  3. 构建LVS负载均衡集群

    LVS即Linux虚拟服务器,目前 LVS 已经被集成到 Linux 内核模块中,该项目在 Linux 内核实现了基于 IP 的数据请求负载均衡调度方案,LVS集群采用IP负载均衡技术和基于内容请求分 ...

  4. Win10已死!微软发布Windows 11大更新:引入ChatGPT、升级巨大

    今天凌晨微软在开发者大会上公布了Windows 11的新版本更新"Moment 3",整体升级幅度非常的大. 新系统的多任务有了改进,现在按下Alt+Tab时,可以显示更多的Edg ...

  5. 万字手撕AVL树 | 上百行的旋转你真的会了吗?【超用心超详细图文解释 | 一篇学会AVL】

    说在前面 今天这篇博客,是博主今年以来最最用心的一篇博客.我们也很久没有更新数据结构系列了,几个月前博主用心深入的学习了这颗二叉平衡搜索树,博主被它的查找效率深深吸引. AVL树出自1962年中的一篇 ...

  6. java线程池实现多任务并发执行

    Java线程池实现多任务并发执行 1️⃣ 创建一些任务来落地多任务并发执行 每一个数组里面的数据可以看成任务,或者是需要并发的业务接口, 数组与数组之间,可以看作为他们之间有血缘关系,简单来说就是: ...

  7. 单片机 IAP 技术方案设计

    1.前言 关于 IAP 技术,做过 bootloader 的想必很熟悉 (IAP全称 In Application Programming,即应用编程),和 ISP (全称 In System Pro ...

  8. 2.2 实验:UPX脱壳--《恶意代码分析实战》

    Lab01-02.exe 实验内容: 1.将文件上传到http://www.VirusTotal.com 进行分析并查看报告.文件匹配到了已有的反病毒软件特征吗? 2.是否有这个文件被加壳或混淆的任何 ...

  9. Java-生成字符串的MD5值

    方法一:public static String getMd5(String str) { MessageDigest md5 = null; try { md5 = MessageDigest.ge ...

  10. sanic和tornado的简单性能测试

    操作系统 : CentOS7.3.1611_x64 Python 版本 : 3.6.8 tornado版本:6.0.2 sanic版本:19.9.0 CPU : Intel(R) Core(TM) i ...