7.线程id,优先级讲解
1.线程id可以通过Thread对象的getId()方法得到,在线程出了问题,为什么CPU占用这么高的时候,查的时候我们可以在堆栈信息中找到对应线程,然后干掉该线程就好!
2.而线程对象的getName方法可以获得该线程的线程名,线程名默认是Thread-数字,当然我们也可以自己指定线程名!
- public final String getName() {
- return String.valueOf(name);
- }
3.可以通过线程对象的getPriority方法获取当前该线程的优先级,如下所示:
- public final int getPriority() {
- return priority;
- }
4.可以通过getState方法获取当前对象的状态信息
- public State getState() {
- // get current thread state
- return sun.misc.VM.toThreadState(threadStatus);
- }
如下代码演示上述四个方法:
- package com.bawei.multithread;
- public class ThreadSimpleApi {
- public static void main(String[] args) {
- Runnable run =new Runnable(){
- @Override
- public void run() {
- System.out.println("这是线程1!");
- try {
- Thread.sleep(100000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- };
- Thread t = new Thread(run,"号啊");
- t.start();
- System.out.println("ThreadName: "+t.getName()+" ThreadId:"+t.getId()+
- " ThreadPriority:"+t.getPriority()+"ThreadState:"+t.getState());
- }
- }
注意:进程也是有优先级的,从我们如下的任务管理器界面中我们可以看到优先级问题,有的进程优先级高,有的进程优先级低,有些软件我们用360的东西杀它但是就是干不掉,就是因为它的优先级比较高!
Java线程:线程的调度-优先级
- package com.bawei.multithread;
- class ThreadSimpleApi {
- public static void main(String[] args) {
- Thread t1 = new MyThread1();
- Thread t2 = new Thread(new MyRunnable());
- t1.setPriority(10);
- t2.setPriority(1);
- t2.start();
- t1.start();
- }
- }
- class MyThread1 extends Thread {
- public void run() {
- for (int i = 0; i < 10; i++) {
- System.out.println("线程1第" + i + "次执行!");
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
- class MyRunnable implements Runnable {
- public void run() {
- for (int i = 0; i < 10; i++) {
- System.out.println("线程2第" + i + "次执行!");
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
7.线程id,优先级讲解的更多相关文章
- java线程基础巩固---线程ID,优先级
这里学习Thread的两个比较简单的API,直接上代码: 线程ID: 那它的生成规则是?直接看源码: 那为什么目前打印是9呢?然后在jvm启动的时候就已经创建了8个线程?继续用jconsole来验证一 ...
- java笔记--查看和修改线程的优先级
查看和修改线程的优先级 java中每一个线程都有优先级属性,在默认情况下,新建的线程的优先级与创建该线程的线程优先级相同.每当线程调度器选择要运行的线程时,通常选择优先级较高的线程. 注:线程的优先级 ...
- Linux-pthread如何设置线程的优先级
设置线程优先级的函数: int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param ...
- Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
/** * Returns the identifier of this process's user. * 返回此进程的用户的标识符. */ Log.e(TAG, "Process.myU ...
- mfc 线程的优先级
知识点: 线程优先级 获取当前线程句柄 线程优先级设置 线程优先级变动 线程优先级获取 一.线程优先级(Thread priority ) 简单的说就是(线程)的优先级越高,那么就 ...
- linux 线程查看 和 Jvm栈线程ID对应
一.proc查看进程和线程 该方法是个人最为推荐,也最喜欢的一种方法.进程文件下,有几种方式可以获取目前进程开启的进程数. 查看status文件: # cat /proc//status Name: ...
- 偏向锁,偏向线程id ,自旋锁
理解锁的基础知识 如果想要透彻的理解Java锁的来龙去脉,需要先了解以下基础知识. 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发 ...
- C#夯实基础之多线程三:线程的优先级
一.为什么需要优先级--线程调度的问题 在现实生活中,优先级是一个很常见的现象:在火车站,如果你是孕妇,你是可以走进站中的专门绿色通道的,可以提前上火车以免拥挤:火警119匪警110出警的时候,都是人 ...
- java 22 - 6 多线程之线程调度和设置线程的优先级
线程调度 假如我们的计算机只有一个 CPU,那么 CPU 在某一个时刻只能执行一条指令,线程只有得到 CPU时间片,也就是使用权,才可以执行指令. 那么Java是如何对线程进行调用的呢? 线程有两种调 ...
随机推荐
- 【pyqtgraph绘图】安装pyqtgraph
解读官方API-安装 安装 参考:http://www.pyqtgraph.org/documentation/installation.html 根据您的需要,有许多不同的方式来安装pyqtgrap ...
- 从零开始编写操作系统——bochs
一.生成boot.bin boot sector代码: loop: jmp loop times -($-$$) db dw 0xaa55 重点就是最后的0xaa55 nasm boot.asm -f ...
- 使用docker部署Asp.net core web应用程序
拉取aspnetcore最新docker镜像 aspnetcore的docker镜像在docker官网是有的,是由微软提供的.它的依赖镜像是microsoft/dotnet.通过访问网址:https: ...
- 数据库文件MDF的空间占满了,没有自动增长是怎么回事?
前提: (1)磁盘C盘.数据文件所在盘均有空间 (2)没有对数据文件设置maxSize (3)做过数据库服务器重启,仍没有效果 (4)但是同一个实例上的其他数据库没问题 (5)配额也查了,没问题 ...
- dbdeployer安装TokuDB MySQL
下载最新的dbdeployer1.6.0,使用非root账户安装dbdeployer,特别是mv的时候. 1,解压 dbdeployer unpack Percona-Server-5.7.22-22 ...
- vue-cli 3.x脚手架配置并使用vux
https://blog.csdn.net/Honnyee/article/details/82181620
- The type org.springframework.context.ConfigurableApplicationContext cannot be resolved.
The type org.springframework.context.ConfigurableApplicationContext cannot be resolved. eclipse导入mav ...
- Scala集合(二)
将函数映射到集合 map方法 val names = List("Peter" , "Paul", "Mary") names.map(_. ...
- Scala对class/object反射
近期有需求,要根据解析字符串,根据字符串的内容去调用方法.想到的基本就是使用反射.但是基本上能找到的资料,全没有讲scala的反射.只有零星点点的讲解.大部分都是用scala的语法写java反射最后翻 ...
- 关于spark的mllib学习总结(Java版)
本篇博客主要讲述如何利用spark的mliib构建机器学习模型并预测新的数据,具体的流程如下图所示: 加载数据 对于数据的加载或保存,mllib提供了MLUtils包,其作用是Helper metho ...