发布于2021-05-29 21:09 阅读(1322) 评论(0) 点赞(26) 收藏(4)
private int priority;
package com.wwj.text;
public class PriorityDemo {
public static class HightPriority extends Thread{
static int count = 0;
@Override
public void run() {
while(true){
synchronized (PriorityDemo.class){
count++;
if(count>10000000){
System.out.println("高优先级输出完成");
break;
}
}
}
}
}
public static class LowPriority extends Thread{
static int count = 0;
@Override
public void run() {
while(true){
synchronized (PriorityDemo.class){
count++;
if(count>10000000){
System.out.println("低优先级输出完成");
break;
}
}
}
}
}
public static void main(String[] args){
Thread high = new HightPriority();
Thread low = new LowPriority();
high.setPriority(Thread.MAX_PRIORITY);
low.setPriority(Thread.MIN_PRIORITY);
low.start();
high.start();
}
}
高优先级输出完成 低优先级输出完成
反复重复发现基本都是高优先级输出完成 低优先级输出完成
而不是低优先级输出完成 高优先级输出完成
这说明通过synchronized进行资源抢夺时,高优先级比低优先级更快。private boolean daemon = false;
package com.wwj.text;
public class DaemonDemo {
public static class DaemonT extends Thread{
@Override
public void run() {
while(true){
System.out.println("我是守护线程");
try {
Thread.sleep(1000);
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws InterruptedException{
Thread t = new DaemonT();
t.setDaemon(true);
t.start();
Thread.sleep(2000);
}
}
我是守护线程 我是守护线程 我是守护线程
:并不是一直输出,这是因为在用户线程main执行完以后,守护线程就结束了,也就不打印了。我是守护线程
作者:以天使的名义
链接:http://www.javaheidong.com/blog/article/207329/e14949f4e8e92e37af1c/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!