首页 > 其他分享 >线程方法

线程方法

时间:2023-01-04 08:44:05浏览次数:35  
标签:void System public 线程 方法 final

1,线程调度   lb.setPriority(Thread.MAX_PRIORITY);    lb.getPriority();
设置线程优先级(属于线程控制的方法, 但是基本不会使用, 了解一下, 面试的时候有可能会问到)
注意1: 优先级别只能设置为1-10之间的值
注意2: 由于java线程是抢占式的, 永远也无法确定下一个线程谁执行,
设置优先级别会一定程度的影响个各个线程抢到的概率
注意3: 线程优先级别不设置, 默认是5

2,线程加入 public final void join(); 让分支线程走完然后轮到主线程走
long start = System.currentTimeMillis();
wu.start();
wu.join();
long end = System.currentTimeMillis();
System.out.println("杀敌所需毫秒数"+ (end - start));

3,线程礼让 public static final void yield(); 让CPU暂时滞空,重新抢夺时间片
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println(getName() +i);
Thread.yield();
}
}

4,线程休眠 public static final void sleep(int millis);

5,后台线程 public final void setDaemon(boolean on);
当一个线程结束,其他线程也要结束的一个方法。 守护线程
WuJiangThread3 guanYu = new WuJiangThread3("关羽");
guanYu.setDaemon(true);
guanYu.start();

6,中断线程
public final void stop() 这个方法太暴力,杀掉线程导致的终止 已经弃用
public void interrupt() 调用这个方法, 会让本来正在执行Thread.sleep方法的线程,主动抛出一个异常(中断异常)
也不会推荐使用, 强制让对方抛出了一个异常, 异常使得那个线程方法执行结束
最正确的方式, 通过isInterrupted询问自己是否应该继续执行, 通过interrupt来传达不执行的命令
interrupt方法是用来改变isInterrupted方法的返回结果的
这种方式比守护线程的方式更加的通用

isInterrupted() 没有被其他人调用打断方法的时候的值是false, 当其他人调用了打断方法之后, 返回true
while (!isInterrupted()) {
System.out.println(getName() + "正在准备");
}

标签:void,System,public,线程,方法,final
From: https://www.cnblogs.com/p1121/p/17023891.html

相关文章

  • npm i不成功devDependencies解决方法
    npmconfigls-l查看npm配置发现production为true,所以i不成功npmconfigsetproductionfalse将production设置为false,成功了。参考链接:https://blog.csdn.net/llp......
  • 数组转List的方法
    数组转List的方法:String[]s=newString[2];s[0]="abc";s[1]="qaz";方法一:Arrays.asList(s)List<String>list=Arrays.asList(s);list.add("efgk");//报错li......
  • 获得“软件方法建模师”称号的名单(2020年12月1日更新)
    为了鼓励大家学习《软件方法》相关技能,决定:(1)满分完成当前所有《软件方法》书中自测题和UMLChina建模竞赛题的同学,可获得“软件方法中级建模师”的称号。两份题目链接如下:​......
  • C语言简易计算器的两种方法
    第一种方法  函数指针数组#include<stdio.h>intadd(intx,inty){returnx+y;}intsub(intx,inty){returnx-y;}intmul(intx,inty){returnx*y;}intd......
  • JAVA线程池-工具类
    packagecom.javacode2022.util;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.collections4.CollectionUtils;importjava.util.List;importjava.......
  • 线程池测试类-TEST
    packagecom.javacode2022.threadpool;importlombok.extern.slf4j.Slf4j;importjava.util.ArrayList;importjava.util.List;importjava.util.concurrent.CountD......
  • 求第n个斐波那契数。(用递归和循环的方法对比)
    写这个代码的过程中出现的问题及改进方法:用递归实现#include<stdio.h>intFib(intn){if(n<=2)return1;elsereturnFib(n-1)+Fib(n-2);}......
  • jstack和线程dump分析
          jstack命令的语法格式:jstack <pid>。可以用jps查看java进程id。这里要注意的是:      1.不同的JAVA虚机的线程DUMP的创建方法和文件格式是不一样的,......
  • 进程和线程关系
     进程是系统进行资源分配的基本单位,有独立的内存地址空间;线程是CPU调度的基本单位,没有单独地址空间,有独立的栈,局部变量,寄存器,程序计数器等只有进程有自己的addressspace......
  • transforms模块—PyTorch图像处理与数据增强方法
      计算机视觉任务中,对图像的变换(ImageTransform)往往是必不可少的操作,例如在迁移学习中,需要对图像尺寸进行变换以使用预训练网络的输入层,又如对数据进行增......