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. 【K哥爬虫普法】不要沾边!涉案 7k 合判 6 年!

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...

  2. Python笔记四之协程

    本文首发于公众号:Hunter后端 原文链接:Python笔记四之协程 协程是一种运行在单线程下的并发编程模型,它的特点是能够在一个线程内实现多个任务的并发操作,通过在执行任务时主动让出执行权,让其他 ...

  3. Java开发中PO、VO、DAO、BO、DTO、POJO 含义

    PO(persistant object) 持久对象 可以看成是与数据库中的表相映射的java对象.使用 Mybatis 来生成 PO 是不错的选择. VO(value object) 值对象 通常用 ...

  4. MySQL 权限与备份管理(精简笔记)

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  5. PVE上启用Intel核显的SR-IOV vGPU

    介绍 Intel SR-IOV vGPU是一种硬件虚拟化技术,它允许多个虚拟机共享单个物理GPU,而不会降低性能.SR-IOV定义了一种标准方法,通过将设备分区为多个虚拟功能来共享物理设备功能.每个虚 ...

  6. (python)每日代码||2024.1.18||元组中的列表成员可以改变内容,不可以改变该列表成员

    t = ([1,2,3],[2,3,4],3) print(t) t[0][1]=9 print(t) # ~ t[2]=9#TypeError: 'tuple' object does not su ...

  7. Collectors.toMap的暗坑与避免方式

    使用Java的stream中的Collectors可以很方便地做容器间的转换,可以少写很多代码.但是其中有暗含的坑需要注意和避免,本文探讨Collectors.toMap(JDK8版本). Colle ...

  8. 力扣只写函数好怪WWWW,转战洛谷!

    转战!目标刷完官方推荐题集

  9. .NET 云原生架构师训练营(模块二 基础巩固 MySQL环境准备)--学习笔记

    2.4.1 EF Core -- MySQL环境准备 安装 Docker 配置 docker 镜像仓库国内镜像地址 运行 mysql docker container 通过 Navicate 连接 安 ...

  10. 【JS】强化Promise理解,从零手写属于自己的Promise.all与Promise.race

    壹 ❀ 引 在一个思路搞定三道Promise并发编程题,手摸手教你实现一个Promise限制器一文中,我们在文章结尾留了一个疑问,关于第三题的实现能否解决当每次调用时间都不相等的情况(比如第二次调用要 ...