APP下载

Java多执行绪知识怎么学 如何成为高薪Java工程师

消息来源:baojiabao.com 作者: 发布时间:2026-05-29

报价宝综合消息Java多执行绪知识怎么学 如何成为高薪Java工程师

Java多执行绪知识怎么学?如何成为高薪Java工程师?很多初学Java的同学通常会对程序和执行绪傻傻分不清,程序和执行绪都是由操作系统所体会的程式执行的基本单元,一个程式至少有一个程序,一个程序至少有一个执行绪。下面就给大家梳理一下多执行绪相关的知识点。

什么是多执行绪呢?即就是一个程式中有多个执行绪在同时执行。使用多执行绪优势明显,比如充分发挥多核CPU的优势、防止阻塞、便于建模。

如何建立执行绪呢?主要有两种方式:1)继承Thread类;2)实现Runnable界面。实现界面的方式比继承类的方式更灵活,也能减少程式之间的耦合度,面向界面程式设计也是设计模式6大原则的核心。

执行绪的优先级有哪些?优先级分为1-10共10个等级,1表示最低优先级,5是预设级别;

t.setPriority用来设定执行绪的优先级,需要线上程开始方法被呼叫之前进行设定;

可以使用MIN_PRIORITY(1),MAX_PRIORITY(10),NORM_PRIORITY(5)来设定优先级。

实现执行绪同步的方法有哪些?1)同步方法,即有synchronized关键字修饰的方法;2)同步程式码块,即有synchronized关键字修饰的语句块;3)使用重入锁实现执行绪同步;4)使用ThreadLocal实现执行绪同步。

如何停止一个正在执行的执行绪?1)使用退出标志,使执行绪正常退出,也就是run方法完成后执行绪终止;2)使用stop方法强行终止执行绪,不推荐,因为和suspend、resume等一样,都是过期作废的方法,可能产生不可预料的结果;3)使用interrupt方法,而interrupt方法并未真正停止执行绪,只不过线上程中打了一个标记;此时可以使用抛异常的方式,也可以使用return的方式结束执行绪,不过推荐使用前者,因为可以继续向上抛,具有更好的连通性。

一个执行绪如果出现了执行时异常会怎么样?如果这个异常没有被捕获,这个执行绪就停止执行。如果这个执行绪持有某个某个物件的监视器,那么这个物件监视器会被立即释放。

如何在两个执行绪之间共享资料?通过线上程之间共享物件就可以,然后通过wait/notify/notifyAll、await/signal/signalAll进行唤起和等待,比方说阻塞伫列BlockingQueue就是为执行绪之间共享资料而设计的。

为什么要使用执行绪池?避免频繁地建立和销毁执行绪,达到执行绪物件的重用。另外,使用执行绪池还可以根据专案灵活地控制并发的数目。

什么是执行绪安全?有哪些级别?执行绪安全:如果你的程式码在多执行绪下执行和单执行绪下执行永远都能获得一样的结果,那么你的程式码就是执行绪安全的。执行绪安全有几个级别:不可变、绝对执行绪安全、相对执行绪安全、执行绪非安全。

Java中如何获取到执行绪dump档案?死循环、死锁、阻塞、页面开启慢等问题,打执行绪dump是最好的解决问题的途径。所谓执行绪dump也就是执行绪堆叠,获取到执行绪堆叠有两步:1)获取到执行绪的pid,可以通过使用jps命令,在Linux环境下还可以使用ps -ef | grep java;2)打印执行绪堆叠,可以通过使用jstack pid命令,在Linux环境下还可以使用kill -3 pid。

想成为高薪Java工程师,你需要理论与实战兼备,而良好的知识基础是你高效率学习、付诸实战的前提。如果你想更好的学习Java程式设计,可以选择专业的学习方式。

2019-11-30 11:53:00

相关文章