网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
exit = true;//5秒后更改退出标志的值,没有这段代码,线程就一直不能停止
}
}
2)使用 interrupt 方法
Thread.interrupt()方法: 作用是中断线程。将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序本身。
interrupt()方法只是改变中断状态,不会中断一个正在运行的线程。 需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断后会抛出interruptedException的方法)就是在监视线程的中断状态,一旦线程的中断状态被置为“中断状态”,就会抛出中断异常。这一方法实际完成的是,给受阻塞的线程发出一个中断信号,这样受阻线程检查到中断标识,就得以退出阻塞的状态。
更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,此时调用该线程的interrupt()方法,那么该线程将抛出一个InterruptedException中断异常(该线程必须事先预备好处理此异常),从而提早地终结被阻塞状态。如果线程没有被阻塞,这时调用 interrupt()将不起作用,直到执行到wait(),sleep(),join()时,才马上会抛出 InterruptedException。
① 使用 interrupt() + isInterrupted()来中断线程
this.interrupted():测试当前线程是否已经中断(静态方法)。如果连续调用该方法,则第二次调用将返回false。在api文档中说明interrupted()方法具有清除状态的功能。执行后具有将状态标识清除为false的功能。
this.isInterrupted():测试线程是否已经中断,但是不能清除状态标识。
package com.ty.day11;
public class PrimeGenerator extends Thread{
@Override
public void run() {
boolean flag=true;
while (flag){
for(int i=2;i<=Long.MAX_VALUE;i++){
if (isPrime(i)) {
System.out.println(this.getName()+“—>”+i);
}
if (this.isInterrupted()) {
System.out.println(this.getName()+“线程被终止了!”);
flag=false;
break;
}
}
}
}
public boolean isPrime(int num){
boolean flag=true;
if(num<2){
return false;
}else{
for(int i=2;i<=Math.sqrt(num);i++) {
if(num%i==0) flag=false;
}
return flag;
}
}
}
package com.ty.day11.test;
import com.ty.day11.PrimeGenerator;
public class TestAllPrime {
public static void main(String[] args) {
PrimeGenerator pg = new PrimeGenerator();
pg.start();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
pg.interrupt();//中断线程
System.out.println(“–Main thread ending–”);
}
}
②使用 interrupt() + InterruptedException来中断线程
public class PrimeGenerator extends Thread{
@Override
public void run() {
boolean flag=true;
while (flag){
for(int i=2;i<=Long.MAX_VALUE;i++){
if (isPrime(i)) {
System.out.println(this.getName()+“—>”+i);
}
try {
Thread.sleep(600);
} catch (InterruptedException e) {
System.out.println(this.getName()+“线程被终止了!”);
flag=false;
break; }
}
}
}
public boolean isPrime(int num){
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!