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. ccs3动画-div向上移动的动画

    <head> <meta charset="UTF-8"> <meta name="viewport" content=" ...

  2. 【JS 逆向百例】DOM事件断点调试,某商盟登录逆向

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:某商盟登录 ...

  3. SignalR系列文章01---MVC项目中创建demo

    1.  新建mvc项目,引入指定的nuget包 2.  新增加一个集成器类添加如下的代码 /// <summary> /// 供客户端调用的服务器端代码 /// </summary& ...

  4. 【转载】基于Tablestore Timeline的IM(即时通讯)消息系统架构 - 架构篇

    本文原作者:木洛,阿里云高级技术专家,内容有优化和修订,感谢原作者.原文链接:https://developer.aliyun.com/article/698301 IM全称是『Instant Mes ...

  5. Python 使用XlsxWriter操作Excel

    在数据处理和报告生成的领域中,Excel 文件一直是广泛使用的标准格式.为了让 Python 开发者能够轻松创建和修改 Excel 文件,XlsxWriter 库应运而生.XlsxWriter 是一个 ...

  6. C/C++ 实现获取硬盘序列号

    获取硬盘的序列号.型号和固件版本号,此类功能通常用于做硬盘绑定或硬件验证操作,通过使用Windows API的DeviceIoControl函数与物理硬盘驱动程序进行通信,发送ATA命令来获取硬盘的信 ...

  7. 【C++深度剖析】为什么C++支持函数重载而C不支持--C++程序编译链接过程--符号表生成规则【Linux环境超详细解释C++函数重载底层原理】

    文章目录 前言 Linux环境g++编译器的配置以及一些准备工作 源文件的符号表生成以及分析 尾声 前言 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种 ...

  8. 程序设计实验第一学期期末考试复习用源代码【C语言深度解剖】【超详细注释】

    有关此篇 在这里博主先告诉大家,博主在学校学的C语言课本是<谭浩强的C语言>那这本红色的书. 博主到期末阶段是学到了结构体那一章,下面是博主的复习代码,是一些比较有编程思想的一些源代码,博 ...

  9. JuiceFS v1.0 beta2 发布|进一步提升稳定性

    这是 JuiceFS v1.0 正式发布前的第二个 beta 版本,共有 16 位社区伙伴贡献了 150+ 次提交 .本次更新以 Bug 修复和稳定性提升为主,辅以大量的文档更新和测试用例优化,并带来 ...

  10. 19c RAC 告警日志报错 ORA 7445 [pevm_icd_call_common()+225]

    问题现象: 在一套2节点的19c RAC 环境下,节点2 alert告警 ORA 7445,且频度固定为每分钟报一次:期间有重启实例,但故障依旧: ========================== ...