Java线程的属性总结

属性

说明

id、name

id是一个递增的整数,每创建一个线程就加一。name的默认值是Thread-后跟一个编号,name可以在Thread的构造方法中进行指定,也可以通过setName方法进行设置。

优先级

getPriority()

在Java中,优先级从1到10,默认为5。这个优先级会被映射到操作系统中线程的优先级,不过,因为操作系统各不相同,不一定都是10个优先级,Java中不同的优先级可能会被映射到操作系统中相同的优先级。另外,优先级对操作系统而言主要是一种建议和提示,而非强制。简单地说,在编程中,不要过于依赖优先级。

状态

getState()

isAlive()返回线程是否活着,线程被启动后,run方法运行结束前,返回值都是true。

是否daemon线程

isDaemon()

启动线程会启动一条单独的执行流,整个程序只有在所有线程都结束的时候才退出,但daemon线程是例外,当整个程序中剩下的都是daemon线程的时候,程序就会退出。

比如负责垃圾回收的线程,这个线程就是daemon线程,在main线程结束的时候,垃圾回收线程也会退出。

sleep方法

sleep(long millis)

睡眠期间,该线程会让出CPU,但睡眠的时间不一定是确切的给定毫秒数,可能有一定的偏差,偏差与系统定时器和操作系统调度器的准确度和精度有关。睡眠期间,线程可以被中断,如果被中断,sleep会抛出InterruptedException。

yield方法

yield()

调用该方法,是告诉操作系统的调度器:我现在不着急占用CPU,你可以先让其他线程运行。不过,这对调度器也仅仅是建议,调度器如何处理是不一定的,它可能完全忽略该调用。

join方法

join()

让调用join的线程等待该线程结束。在等待线程结束的过程中,这个等待可能被中断,如果被中断,会抛出InterruptedException。

join(long millis)

另外一个变体函数,可以限定等待的最长时间,单位为毫秒,如果为0,表示无期限等待。

#java原理##并发编程#
27届毕业生-Java知识专辑 文章被收录于专栏

知其然知其所以然,只有掌握了底层原理,借助第一性原理,才可以在日常开发和项目中运用自如,潇洒走江湖。 专为27届毕业生准备,托起您的就业梦。 该专辑会不定时更新,建议27届同学订阅,入职后扎实的基本功可以帮您争取更好的机会和项目。

全部评论

相关推荐

暑期实习什么时候投?
点赞 评论 收藏
分享
最近两周学会的:了解什么是 benchmark,怎么做测评集数据。写 prompt 给模型生成的答案打分。学会了怎么排查一些基础的agent bug。看用户负反馈,先看调用链路,再看输入输出,最后怀疑人生。记录一些新思考:1️⃣ 别怕问问题首先摸清楚究竟应该做什么,哪些事情的优先级更高。如果搞不清楚可以问 mentor,了解具体情况。把一些基础的概念理清楚,后续会少犯错。可以在便签上记一下哪些业务找哪些负责人,这样协作起来会更高效。还有一个 i 人地狱的行为,就是我发现如果协作方没回消息可以直接去他座位上找他,沟通效果会更好。啊啊啊啊我虽然是 e 人,但是这种场合真的会变成 i 人。2️⃣ 建立术语词典把每天听到的新词记下来,不用追求技术深度,但要理解业务含义。比如虽然不懂搜索调用了哪些技术,但要清楚为什么这么做。最近发现一些反馈是用户觉得搜索时效性差,反推逻辑是:模型不能在每次用户提问的时候都开搜索,这样会浪费一些算力资源,所以需要在前置开个意图判断的小模型预判用户问题需不需要搜索,简单问题直接让大模型回答,只有涉及实时信息、专业知识或不确定内容时才调用昂贵的搜索功能,节省搜索成本,并且提高回答速度。后续可以记录这些 case 做优化。3️⃣写 bug 日记每遇到一个bug,不要只满足于解决,要记录下来:现象是什么、原因是什么、排查路径是什么、怎么避免的。有相似情况就不用找开发去再排查,一些简单的 case 也能自己 debug。4️⃣找到自己的价值刚开始会感觉有些无法融入,周围人说话有点像听天书。全是做技术的,做模型产品运营和功能产品运营不太一样。公司的产品就是模型,所以很多事情就是在做模型本身的优化,要学很多东西。后面也逐渐觉得,虽然文科生没有技术背景,但是也能做用户洞察,做创意策划。保持对人的好奇、对故事的敏感、对体验细节的执着,这些也是很稀缺的能力。0经验的同学可以试试先做一段普通产品运营岗慢慢转。找那种急招或者招人比较多的实习;还有一种方法是在传统业务中做一些 AI 工作,在简历里强调这段经历。
掌握什么AI技能,会为你...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务