java 的线程是什么?执行起来又有什么特点?优先级高的要优先执行吗?

来源:百度知道 编辑:UC知道 时间:2024/06/23 19:15:03
首先谢谢你的回答,接下来尚有疑问,请赐教:
是不是说一般情况下,如果创建了几个线程,执行起来并不一定是先创建和先调用了start()方法的线程就会被先执行,而完全是操作系统说了算,对吗?

线程定义比较抽象,简单的说就是一个代码执行流。许多执行流可以混合在一起由CPU调度。线程是允许各种任务交互执行的方式。

Java的线程在操作系统的实现模式依系统不同而不同,可能是系统级别的进程或线程,但对于程序员来说并没有影响。

任务交互的一个好处是增加程序响应。如一个界面程序执行一段耗时的数据库查询,使用单独的线程可以让界面依然响应用户的其他输入,而单线程只能等待查询结束再处理。

JVM以及操作系统会优先处理优先级别高的线程,但不代表这些线程一定会先完成。设定优先级只能建议系统更快的处理,而不能强制。

你补充的情况完全正确。另外,在运行时,并没有按照函数分界,而是按照机器码/汇编码分界。也就是说不保证任何一段代码是被完整而不打断的执行的(除非你已经使用同步手段)。正由于如此,各种线程同步的方法应运而生。